首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JSON.net获取JToken的名称/密钥

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

Stack Overflow用户
提问于 2014-01-09 01:18:33
回答 5查看 159.3K关注 0票数 91

我有一些JSON,看起来像这样

代码语言:javascript
复制
[
  {
    "MobileSiteContent": {
      "Culture": "en_au",
      "Key": [
        "NameOfKey1"
      ]
    }
  },
  {
    "PageContent": {
      "Culture": "en_au",
      "Page": [
        "about-us/"
      ]
    }
  }
]

我将其解析为JArray:

代码语言:javascript
复制
var array = JArray.Parse(json);

然后,我循环遍历数组:

代码语言:javascript
复制
foreach (var content in array)
{

}

content是一个JToken

如何检索每一项的"name“或"key”?

例如,"MobileSiteContent“或"PageContent”

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-01-09 06:28:57

JTokenJObjectJArrayJPropertyJValue等的基类。您可以使用Children<T>()方法来获得某个类型的子代的过滤列表,例如JObject。每个JObject都有一个JProperty对象集合,可以通过Properties()方法访问这些对象。对于每个JProperty,您可以获得它的Name。(当然,如果需要,您也可以获得Value,这是另一个JToken。)

把所有这些放在一起我们有:

代码语言:javascript
复制
JArray array = JArray.Parse(json);

foreach (JObject content in array.Children<JObject>())
{
    foreach (JProperty prop in content.Properties())
    {
        Console.WriteLine(prop.Name);
    }
}

输出:

代码语言:javascript
复制
MobileSiteContent
PageContent
票数 142
EN

Stack Overflow用户

发布于 2018-07-04 16:10:47

代码语言:javascript
复制
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"];
}
票数 29
EN

Stack Overflow用户

发布于 2014-05-09 07:57:04

JObject的默认迭代器是作为字典迭代键/值对。

代码语言:javascript
复制
JObject obj = JObject.Parse(response);
foreach (var pair in obj) {
    Console.WriteLine (pair.Key);
}
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21002297

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档