我需要解析的Json(使用json.net)是服务所调用的对象数组"标识符":
按标识符的消息数组的JSON表示。 messages array由字符串标识符键入的Message对象数组。
例如:
{
"messages":{
"349149733:-4:0:0":{
"name":"Fred",
"text":"Body for test message.",
"subject":"Test Message 1",
"referenceId":"349149733"
}
"253413023:-4:0:0":{
"name":"Fred",
"text":"Body for the next test message.",
"subject":"Test Message 2",
"referenceId":"253413023"
}
....
}
}
我有一个.NET对象,我知道它正确代表了消息('值'项" 349149733:-4:0:0"带有名称,文本属性等)但我似乎无法解析数组部分?
我想让json.net自动解析为一个集合类型对象,我可以简单地进行交互并获取每条消息。
答案 0 :(得分:0)
我认为你的意思是这样的:
var xyz = JSON.parse('{"messages":{"349149733:-4:0:0":{ "name":"Fred","text":"Body for test message.", "subject":"Test Message 1","referenceId":"349149733"}}}');
console.log(xyz.messages['349149733:-4:0:0']);
答案 1 :(得分:0)
Json.NET将能够将messages
值序列化为IDictionary<string, Message>
类型的对象。
JObject jsonObject = JsonConvert.DeserializeObject<JObject>(text);
IDictionary<string, Message> messages =
jsonObject["messages"].ToObject<IDictionary<string, Message>>();
然后,您可以遍历字典条目(带键和Message
的键值对),或单独使用值。