我有一些JSON,看起来像这样
[
{
"MobileSiteContent": {
"Culture": "en_au",
"Key": [
"NameOfKey1"
]
}
},
{
"PageContent": {
"Culture": "en_au",
"Page": [
"about-us/"
]
}
}
]
字符串
我将其解析为一个JArray:
var array = JArray.Parse(json);
型
然后,我遍历数组:
foreach (var content in array)
{
}
型content
是JToken
如何检索每个项目的“名称”或“密钥”?
例如,“MobileSiteContent”或“PageContent”
7条答案
按热度按时间vfwfrxfs1#
JToken
是JObject
、JArray
、JProperty
、JValue
等的基类。您可以使用Children<T>()
方法来获取JToken的特定类型的子级的过滤列表,例如JObject
。每个JObject
都有一个JProperty
对象的集合,可以通过Properties()
方法访问。对于每个JProperty
,您可以获得其Name
。(当然,如果需要,您也可以获得Value
,这是另一个JToken
。)把这一切放在一起,我们有:
字符串
输出量:
型
wz8daaqr2#
字符串
7cjasjjr3#
JObject的默认迭代器就像一个字典,在键/值对上进行迭代。
字符串
tyky79it4#
使用Linq,我们可以这样写:
字符串
vptzau2j5#
字符串
这对我很有效。
3npbholx6#
如果
JToken
键名未知,并且您只需要键名的Value而不考虑名称,则只需使用JToken.Values()
方法。下面的示例假设
JToken
值是基元类型-提取找到的第一个值。解决方案可以扩展为支持数组值。
字符串
a8jjtwal7#
最简单的方法是查看JSON对象中每个项的路径。
字符串