我有一些看起来像这样的JSON数据:
{ "910719": { "id": 910719, "type": "asdf", "ref_id": 7568 }, "910721": { "id": 910721, "type": "asdf", "ref_id": 7568 }, "910723": { "id": 910723, "type": "asdf", "ref_id": 7568 } }
如何使用JSON.net解析?我可以先这样做:
JObject jFoo = JObject.Parse(data);
我需要能够遍历此列表中的每个对象。我希望能够做这样的事情:
foreach (string ref_id in (string)jFoo["ref_id"]) {...}
要么
foreach (JToken t in jFoo.Descendants()) { Console.WriteLine((string)t["ref_id"]); }
但是当然不行。如果您在编写代码时知道键,那么所有示例都可以很好地工作。如果您事先不知道密钥,它就会崩溃。
这是可行的;这可行,但并不优雅。我敢肯定有更好的方法。
var o = JObject.Parse(yourJsonString); foreach (JToken child in o.Children()) { foreach (JToken grandChild in child) { foreach (JToken grandGrandChild in grandChild) { var property = grandGrandChild as JProperty; if (property != null) { Console.WriteLine(property.Name + ":" + property.Value); } } } }
印刷品:
ID:910719 类型:asdf ref_id:7568 ID:910721 类型:asdf ref_id:7568 ID:910723 类型:asdf ref_id:7568