我有一个有趣的问题,即我JSON
为相同的 URI 调用返回的结果可能会根据用户的 ID 略有不同。我不知道所有差异的组合,因为事情可能会随着时间而改变。例如,对同一 URL 的三个不同请求可能会返回这三种不同的 JSON 表示。
{ "success":true, "total":1, "list":[{
"uid":"24",
"firstname":"Richard",
"question1":"Y"}
]}
{ "success":true, "total":1, "list":[{
"uid":"25",
"firstname":"Fred",
"question2":"Yes"}
]}
{ "success":true, "total":1, "list":[{
"uid":"26",
"firstname":"Bob",
"surname":"Wilde",
"question3":"Cat"}
]}
请注意,第一个调用包含Question1
第二个调用包含Question2
,第三个调用包含surname and Question3
。
反序列化的代码如下所示:-
var result = client.Execute<ResultHeader<Customer>>(request);
public class ResultHeader<T>
{
public bool Success { get; set; }
public int Total { get; set; }
public List<T> List { get; set; }
}
public class Customer
{
public string Firstname { get; set; } //This is always returned in the JSON
//I am trying to get this...
public Dictionary<string, string> RemainingItems { get; set; }
}
我想要做的是要么返回一个字典集合,ALL
其中包含list
不常见且未反序列化的内容,要么返回包含list
. 一些假设是,如果需要,列表中的所有值都可以视为字符串。
这可以使用RESTSharp
吗?我不想在编译时使用动态,因为我不知道所有的可能性。基本上,一旦我有了字典,我就可以在运行时循环和映射我需要的位置。