我想解析一些 JSON 数据。我正在使用James Newton-King's JSON.NET library .
我将 JSON 字符串解析为 JObject。这是我正在解析的 JSON:
"root": [
{
"date": 1325400000000,
"id": 12313131,
"loc": "en_us",
"name": "New York, NY",
"products": [
{
"@type": "asdf",
"city": "New York - Penn Station, NY (NYP)",
"code": "USA",
}
],
"summary": {
"alert": [],
"end": 1325577000000,
"start": 1325400000000
}
}
]
}
如您所见,它非常复杂。 “root”是必要的,否则数据无法解析为 JObject 实例。
JObject o = JObject.Parse(jsonString);
JSON 数据相当大。其中有多个具有不同 ID 的项目。我想查找具有特定 ID 的项目。
问题是,当我尝试遍历数据时,它只有一个元素。
KEY: root
VALUE: the other stuff.
那么我如何访问其他内容并循环浏览里面的内容?
最佳答案
没关系..
我刚刚解决了它。
我删除了尾随的 [ 和结尾 ]。
所以它现在是一个有效的 Json 对象,并且 foreach 的键值工作起来就像一个魅力..
foreach (KeyValuePair<String, JToken> d in o)
{
Console.WriteLine(String.Format("Key: {0}; Value: {1}", d.Key, d.Value));
}
万岁!
事实证明这只是部分解决方案。因为现在其他的都没有格式化,只有第一段是。其他人莫名其妙地消失了......:S该死的......
更好的解决方案...我是个十足的白痴...
将所有内容保留在原处,只需使用 JArray ja = JArray.Parse(stringOfJson);
这将为您提供一个完整的数组,其中包含可以自由循环的所有数据...太棒了。 :)
关于c# - .NET C#/Csharp 中的 JSON - 从对象中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7482822/