使用Json.Net解析JSON以获取密钥

时间:2015-05-04 20:57:52

标签: c# json json.net

搜索了我的问题并没有找到答案,我有一个如下的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"我在哪里也不知道他们的名字......

1 个答案:

答案 0 :(得分:1)

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

因此,通过在JSON数据上调用JObject来获取JObject.Parse

然后,获取密钥(取自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);
}