使用JSON.net获取JToken的名称/密钥

我有一些看起来像这样的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”

回答:

JToken是基类JObjectJArrayJPropertyJValue,等你可以使用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

以上是 使用JSON.net获取JToken的名称/密钥 的全部内容, 来源链接: utcz.com/qa/399244.html

回到顶部