我正在使用以下内容反序列化一些嵌套的JSON:
string json = @"{
""name"": ""charlie"",
""someID"": 123,
""level1"" : {
""name"": ""charlie 1"",
""someID"": 456
}
}";
JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string, object> data = serializer.Deserialize<Dictionary<string, object>>(json);
Run Code Online (Sandbox Code Playgroud)
完成此操作后,每个字典键的值都可以是另一个字典,依此类推,可以有多个层次。
我想做的是将多级数据展平,因此它只是一个平面Array / List,仅包含所有JSON属性名称及其值。这样我最终得到这样的东西:
name, "charlie"
someID, 123
name, charlie 1
someID, 456
Run Code Online (Sandbox Code Playgroud)
我一直在使用SelectMany()之类的方法,但是无法纠缠它来做我想做的事情。
我一直在徘徊这样的事情:
var obj = data.Values.SelectMany<object, Dictionary<string, object>>(x => x);
Run Code Online (Sandbox Code Playgroud)
但是我不能满足编译器的要求。是的,我迷路了。
我正在使用.NET 3.5。