从 JSON 节点获取包含 KeyValuePairs 的列表
Get list with KeyValuePairs from JSON node
我有以下 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>
列表?
经过一些额外的搜索,我发现以下 post 给出了最终解决方案的提示: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));
}
我有以下 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>
列表?
经过一些额外的搜索,我发现以下 post 给出了最终解决方案的提示: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));
}