我收到了来自调查响应的REST Web服务返回的JSON。一些名值对的名称部分有数组。此外,名称将因所提问的问题类型而异。我正在使用JSON.net并尝试将返回的值反序列化为某种对象树,以便我可以遍历,但是无法确定使用什么结构来填充它。
我在LinqPad中测试了以下片段,并且fields始终为空。是否有一种简单的方法来读取可变数据,还是我必须在代码中解析它?
我在LinqPad中测试了以下片段,并且fields始终为空。是否有一种简单的方法来读取可变数据,还是我必须在代码中解析它?
void Main() {
string json = @"{
'result_ok':true,
'total_count':'51',
'data':[{
'id':'1',
'status':'Deleted',
'datesubmitted':'2015-01-12 10:43:47',
'[question(3)]':'Red',
'[question(4)]':'Blue',
'[question(18)]':12,
'[variable(\'STANDARD_IP\')]':'127.0.0.1',
'[variable(\'STANDARD_GEOCOUNTRY\')]':'United States'
}]
}";
var responses = JsonConvert.DeserializeObject<RootObject>(json);
responses.Dump();
}
public class RootObject {
public bool result_ok { get; set; }
public string total_count { get; set; }
public List<Response> data { get; set; }
}
public class Response {
public string id { get; set; }
public string status { get; set; }
public string datesubmitted { get; set; }
public List<object> fields = new List<object>();
}
data
的类型更改为Dictionary<string, object>[]
,然后使用自己的逻辑将每个字典转换为Response
。 - SimpleVar