C# 使用JSON.net获取JToken的名称/密钥
我有一些JSON看起来像这样C# 使用JSON.net获取JToken的名称/密钥,c#,json,json.net,C#,Json,Json.net,我有一些JSON看起来像这样 [ { "MobileSiteContent": { "Culture": "en_au", "Key": [ "NameOfKey1" ] } }, { "PageContent": { "Culture": "en_au", "Page": [ "about-us/" ] } } ] 我将其解析为JArray:
[
{
"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
是JObject
、JArray
、JProperty
、JValue
等的基类。您可以使用Children()
方法获取JToken的特定类型的子项的筛选列表,例如JObject
。每个JObject
都有一组JProperty
对象,可以通过Properties()
方法访问这些对象。对于每个JProperty
,您可以获取其名称。(当然,如果需要,您也可以获得值
,这是另一个JToken
)
综上所述,我们有:
JArray array = JArray.Parse(json);
foreach (JObject content in array.Children<JObject>())
{
foreach (JProperty prop in content.Properties())
{
Console.WriteLine(prop.Name);
}
}
JObject的默认迭代器是一个在键/值对上迭代的字典
JObject obj = JObject.Parse(response);
foreach (var pair in obj) {
Console.WriteLine (pair.Key);
}
最简单的方法是查看JSON对象中每个项的路径
For Each token As JToken In json
Dim key= token.Path.Split(".").Last
Next
JObject obj = JObject.Parse(json);
var attributes = obj["parent"]["child"]...["your desired element"];
foreach (JProperty attributeProperty in attributes)
{
var attribute = attributes[attributeProperty.Name];
var my_data = attribute["your desired element"];
}
For Each token As JToken In json
Dim key= token.Path.Split(".").Last
Next