我在C#中有一个json对象(表示为Newtonsoft.Json.Linq.JObject对象),我需要将其展平为字典。让我向您展示我的意思的示例:
{
"name": "test",
"father": {
"name": "test2"
"age": 13,
"dog": {
"color": "brown"
}
}
}
这将产生一个包含以下键值对的字典:
["name"] == "test",
["father.name"] == "test2",
["father.age"] == 13,
["father.dog.color"] == "brown"
我怎样才能做到这一点?
最佳答案
JObject jsonObject=JObject.Parse(theJsonString);
IEnumerable<JToken> jTokens = jsonObject.Descendants().Where(p => p.Count() == 0);
Dictionary<string, string> results = jTokens.Aggregate(new Dictionary<string, string>(), (properties, jToken) =>
{
properties.Add(jToken.Path, jToken.ToString());
return properties;
});
我有将嵌套的json结构展平为字典对象的相同要求。找到了解决方案here。
关于c# - C#展平JSON结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7394551/