当前位置: 首页 > 面试题库 >

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

司徒正信
2023-03-14
问题内容

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


 类似资料:
  • 问题内容: 我试图弄清楚如何从我的API返回一个核心对象 其中T是一些具有属性的对象,例如 使用 将属性返回为,正确的是。 但是,如果我想使用名称作为类型呢?因此,响应Json实际上将包含一个名为not 的属性,如下所示。 我很好奇是否有一个相对简单的方法可以用Json.net做到这一点,或者您是否必须创建一个自定义并在编写时使用反射来获取类型名称? 谢谢。 问题答案: 据我所知,没有内置的方法可

  • 问题内容: 我正在尝试使用Go的反射系统来检索函数的名称,但是在调用其类型的Name方法时会得到一个空字符串。这是预期的行为吗? 这是我如何解决问题的简单示例: 问题答案: 解决方案是使用FuncForPc返回一个。 返回: 如果需要,只需将其标记化即可。

  • 我使用的是selenium pagefactory,并引入了一个注释@Name(Description=“Username”),用于所有WebElement。稍后,我需要在自定义方法中找到描述值,以便进行报告,例如: 我的@Name注释界面和pagefactory如下所示: 名称接口 在使用反射时,我面临的问题是需要定义pagefactory的类名,并提供字段名作为字符串“username”,以检

  • 我需要得到发布内容的用户的名字。我所尝试的一切都将返回ID。我尝试过msg.author等。 编辑:恐怖标题名称smh

  • 问题内容: 我是selenium测试的新手。我想使用selenium获取css类名。我正在使用eclipse和Java进行开发。 有什么方法可以使用selenium获得类名“ odd”或“ even”?一世 问题答案: 是的,您可以根据需要使用功能。 指定需要知道其类的元素的Xpath。 谢谢。

  • 我想使用属性名称获取WooCommerce产品属性的ID。例如 我知道产品属性是分类法,但是get_taxonomy()不会返回分类法ID。我找不到一个可以这样做的Woocommerce函数。