使用更改json.net中的属性名称反序列化JSON字符串

时间:2017-09-23 10:34:31

标签: c# json json.net

我有一个像这样的JSON字符串:

{
    "entries": {
        "101": [
            { "title": "A" },
            { "title": "B" }
        ],
        "102": [
            ...
        ],
        ... // other properties
    },
    ...
}

一个属性(条目)是具有多个属性的对象。 "条目"'属性名称实际上是某种类别代码,将根据查询而改变。

我需要反序列化这个JSON字符串。由于属性名称的更改,反序列化为类(Newtonsoft.Json.JsonConvert.DeserializeObject<MyClass>(theString))是不可能的。所以看起来我必须解析它。

我能想到的最佳方式是投射&#34;条目&#34;进入JObject,获取其属性,并循环遍历属性以继续进行。像这样:

var parsed = JObject.Parse(jsonStr);

var flattened = ((JObject)parsed["entries"])
    .Properties()
    .SelectMany(p => parsed["entries"][p.Name])
    .ToList();

这个JSON设置(使用对象属性作为某种字典)是否有名称?有没有更简单/有效的方法来处理json.net?

0 个答案:

没有答案