我有一些看起来像这样的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
}
}
Run Code Online (Sandbox Code Playgroud)
我如何使用JSON.net解析这个?我可以先这样做:
JObject jFoo = JObject.Parse(data);
Run Code Online (Sandbox Code Playgroud)
我需要能够遍历此列表中的每个对象.我希望能够做到这样的事情:
foreach (string ref_id in (string)jFoo["ref_id"]) {...}
Run Code Online (Sandbox Code Playgroud)
要么
foreach (JToken t in jFoo.Descendants())
{
Console.WriteLine((string)t["ref_id"]);
}
Run Code Online (Sandbox Code Playgroud)
但当然这不起作用.如果您在编写代码时知道密钥,那么所有示例都能很好地工作.如果您事先不知道密钥,它会崩溃.
Tru*_*ill 22
这是可行的; 这可行,但它并不优雅.我相信有更好的方法.
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);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
打印:
id:910719 type:asdf ref_id:7568 id:910721 type:asdf ref_id:7568 id:910723 type:asdf ref_id:7568
| 归档时间: |
|
| 查看次数: |
34451 次 |
| 最近记录: |