如何从JSON字符串中的任何级别检索所有出现的特定键?

时间:2015-11-03 09:41:20

标签: c# json json.net

我们说我有一个JSON字符串,如下所示:

{
    "Id": " 1,
    "Title": "AllLocations",
    "Locations":
    [
        {
            "Title": "LocationA",
            "Latitude": 100,
            "Longitude": 100"
        },
        {
            "Title": "LocationB",
            "Latitude": 100,
            "Longitude": 100"
        }
    ]
}

我想轻松取出Title的所有内容,因此我的结果如下:

AllLocations, LocationA, LocationB

请注意Title标记在层次结构中的任何级别中的显示方式。如果不自己编写解析代码,这可能吗?使用JSON.Net的解决方案将是理想的。

编辑:如果这是一个重复的问题,请道歉。我无法找到关于在JSON层次中找到任何级别的值的任何其他问题。

1 个答案:

答案 0 :(得分:1)

使用JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(json);

你可以检查循环中动态的类型是否更深,如果它也是字符串你处于json的“最深”级别而你不再需要进一步搜索

如果你的JSON随着时间的推移而变化,例如现在已经达到100级,那么这也会有效。