从JSON节点获取KeyValuePairs的列表

时间:2017-11-22 11:10:51

标签: c# .net json wpf keyvaluepair

我有以下JSON:

{ 
    "data":[{ 
        "from": "2017-11-22T10:00Z",
        "to": "2017-11-22T10:30Z",
        "intensity": {
            "forecast": 322,
            "actual": 343,
            "index": "high"
        }
    }]
}

我希望将强度属性提取为KeyValuePair列表。

我为访问该列表所做的工作:

JObject parsed = JObject.Parse(JSON);
var list = parsed.SelectToken("data[0].intensity").ToList();

这给了我以下JToken对象列表:

"forecast": 322
"actual": 343
"index": "high"

如何将其转换为KeyValuePair<string, string>列表?

1 个答案:

答案 0 :(得分:0)

经过一些额外的搜索,我发现以下帖子提供了最终解决方案的提示:Get Name of JObject in json.net using Linq

我实施了以下解决方案:

var parsed = JObject.Parse(JSON);
var list = parsed.SelectToken("data[0].intensity");
List<KeyValuePair<string, string>> keyvaluelist = new List<KeyValuePair<string, string>>();

foreach (var item in list)
{
    JProperty prop = (JProperty)item;
    string key = prop.Name; 
    string value = (string)prop.Value;
    keyvaluelist.Add(new KeyValuePair<string, string>(key, value));
}