我正在使用以下内容反序列化一些嵌套的 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);
完成此操作后,每个字典键的值可能是另一个字典,依此类推,有多个级别。
我想做的是展平多级数据,使其只是一个平面数组/列表,只有所有 JSON 属性名称及其值。所以我最终得到这样的东西:
name, "charlie"
someID, 123
name, charlie 1
someID, 456
我正沿着使用SelectMany()等等的道路前进,但无法解决它来做我所追求的事情。
我一直在纠结这样的事情:
var obj = data.Values.SelectMany<object, Dictionary<string, object>>(x => x);
但我无法满足编译器。是的,我迷路了。
我正在使用 .NET 3.5。