用 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);
}
搜索了我的问题但没有找到答案,我有一个如下所示的 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);
}