我在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结构展平为字典对象的相同要求。在这里找到解决方案。