我有一些像这样的 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
如何检索每个项目的“名称”或“ key ”?
例如,“MobileSiteContent”或“PageContent”
最佳答案
JToken
是 JObject
的基类, JArray
, JProperty
, JValue
等。您可以使用 Children<T>()
获取特定类型的 JToken 子代的过滤列表的方法,例如 JObject
.每个JObject
收藏了 JProperty
对象,可通过 Properties()
访问方法。对于每个 JProperty
, 你可以得到它的Name
. (当然你也可以得到 Value
如果需要,它是另一个 JToken
。)
综合起来我们有:
JArray array = JArray.Parse(json);
foreach (JObject content in array.Children<JObject>())
{
foreach (JProperty prop in content.Properties())
{
Console.WriteLine(prop.Name);
}
}
输出:
MobileSiteContent
PageContent
关于c# - 使用 JSON.net 获取 JToken 的名称/ key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21002297/