反序列化不同对象的列表

时间:2016-02-04 18:02:48

标签: c# json serialization

假设我有以下C#类

[JsonObject(MemberSerialization.OptIn)]
public class Parent
{
    [JsonProperty]
    public int SharedProp { get; set; }
}

public class ChildA : Parent
{
    [JsonProperty]
    public string ChildAProperty { get; set; }
}

public class ChildB : Parent
{
    [JsonProperty]
    public string ChildAProperty { get; set; }
}

现在我创建了一个List<Parent>,其中包含0到n个对象。列表的序列化工作正常,并给我一个有效的JSON文件,我可以反序列化。问题是,我目前只返回List<Parent>,并且没有ChildAChildB对象。

我正在使用Newtonsoft JSON序列化程序/反序列化程序。有没有办法实现这一点,还是我必须将其拆分为单独的文件/列表?

1 个答案:

答案 0 :(得分:2)

您需要在TypeNameHandling中指定JsonSerializerSettings。请查看this article示例。