给出json字符串
var testJson = @"{'entry1': {
'49208118': [
{
'description': 'just a description'
},
{
'description': 'another description'
}
],
'29439559': [
{
'description': 'just a description'
},
{
'description': 'another description'
}
]
}
}";
可以通过
检索键49208118
的数组值
var root = JToken.Parse(testJson);
var descriptions = root.SelectTokens("..49208118[*]").ToList();
根据this answer。
但是如何将entry1
下的整个子结构解析为字典
Dictionary<string, JArray> descriptions;
将数字id映射到JObject
s的数组?
答案 0 :(得分:1)
这个怎么样:
string selector = String.Format("..{0}[*]", yourKey);
var descriptions = root.SelectTokens(selector).ToList();
答案 1 :(得分:1)
由于问题是如何解析entry1
到Dictionary<string, JArray>
- 最简单的选择是:
JToken root = JToken.Parse(testJson);
Dictionary<string, JArray> descriptions = root["entry1"].ToObject<Dictionary<string, JArray>>();
Json.NET允许在解析时没有问题地混合.NET类(Dictionary
)和他自己的类(JArray
)。