【问题标题】:How to get only the root name in Json如何仅获取 Json 中的根名称
【发布时间】:2017-11-27 16:44:36
【问题描述】:

假设我有一个如下的 Json:

{
    "Records123": {
        "-count": "1",
        "-count2": "2",
        "-count3": "4",
        "Metadata": {
            "value": 2,
            "sum": 5
        }

    }
}
    1234563 /p>
  1. 在这种情况下如何获取根属性,即“计数”,就像我们在 XML 中使用 XDocument.Root.Attributes() 一样?

【问题讨论】:

  • 它是顶级对象的键列表中的唯一键。这有什么难的?
  • 如何使用 Json.net 获取它?

标签: c# json xml json.net


【解决方案1】:

你可以像这样使用 JObject

var jsonObject = JObject.Parse(jsonString);
foreach (var tmp in jsonObject) 
{
    Console.WriteLine(tmp.Key);
}

对于您的示例 JSON,这应该在控制台上为您提供 Records123。您必须在此处添加一些逻辑才能仅获取第一项,这对于 JProperty 处理来说有点棘手。

编辑

获取其他属性使用

var jsonObject = JObject.Parse(jsonString);
foreach(JObject jsonProperty in jsonObject.Children<JProperty>().First())
{
    foreach (var property in jsonProperty.Properties())
    {
        Console.WriteLine(property.Name);
    }
}

【讨论】:

  • 非常感谢@Sprinter252。如何解决“在这种情况下,如何获取根属性,即 'count'、'count2'、'count3',就像我们在 XML 中有 XDocument.Root.Attributes() 一样?”
  • 感谢@Sprinter252
猜你喜欢
  • 2021-04-18
  • 1970-01-01
  • 2019-11-29
  • 1970-01-01
  • 2016-11-05
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 2021-07-24
相关资源
最近更新 更多