用 Json.Net 解析 JSON 以获得密钥

parsing JSON with Json.Net to get the Key

搜索了我的问题但没有找到答案,我有一个如下所示的 JSON 文件:

{  
   "handle":"ABCD",
   "Tracks":{  
      "Design":{  
         "rating":402
      },
      "Development":{  
         "rating":1584,
         "reliability":"n/a"
      },
      "Specification":{  
         "rating":923,
         "reliability":"0.13"
      },
      "Conceptualization":{  
         "rating":895
      }
   }
}

我正在获取 json 的动态对象:

dynamic dynObj;
dynObj = JsonConvert.DeserializeObject(content);

如何获取 "Tracks" 项的名称?我不知道有多少像 "Design" 这样的标签,也不知道它们的名字...

在您的(动态)方案中,不要使用 dynamic,这没有意义,因为您正在寻找有关文档的架构信息,而这些信息通过动态模型变得不可用。

因此,通过对您的 JSON 数据调用 JObject.Parse 来获得 JObject

然后,获取密钥(取自JObject.Properties documentation):

foreach (var prop in myJObject.Properties()) 
{ 
    //returns 'handle' and 'Tracks' for your root object
    Console.WriteLine("{0} - {1}", prop.Name, prop.Value); 
}

或使用 JObject 的枚举数:

foreach (var kvp in myJOBject) 
{
    Console.WriteLine("{0} - {1}", kvp.Key, kvp.Value);
}