如何使用相同对象的列表解析JSON字符串,但名称不同?

时间:2016-06-20 11:53:17

标签: c# json json.net

我使用Newtonsoft JSON.NET和.NET 4.6.1 我希望这个图书馆是“聪明的”#34;足以区分相同的数据类型并自动将它们转换为集合。 There's the JSON。我希望得到所有"索引"属性到数组或列表中 有没有办法正确地做到这一点? Here are classes我试图让它与之合作。

1 个答案:

答案 0 :(得分:1)

我不知道是否有办法自动执行您想要做的事情,但您可以使用JSON-to-LINQ来实现您想要的目标。

这个想法是为了获得"历史"来自你的json内容的节点,然后提取你的" indexXXX"的所有第一个孩子。子节点。一旦有了子节点,就可以使用自动解串器。

var data          = JObject.Parse(json);
var historyItems  = from d in data["history"] select d.First;

foreach(var h  in historyItems)
{
    var history = JsonConvert.DeserializeObject<Index>(h.ToString());

    Console.Out.WriteLine("History : {0}, {1}, {2}", history.Pl, history.PlDesc, history.En);
}