反序列化不同对象的列表

本文关键字:列表 对象 反序列化 | 更新日期: 2023-09-27 18:33:11

假设我有以下 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; }
}

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

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

反序列化不同对象的列表

您需要

JsonSerializerSettings中指定TypeNameHandling。以本文为例。