我们希望能够从/向C#类序列化/反序列化json,主类具有多态子对象的实例。使用Json.Net的TypeNameHandling.Auto设置很容易。但是,我们希望在没有“$ type”字段的情况下这样做。
第一个想法是能够将“$ type”重命名为我们选择的值,并使该类型的值为枚举,以便正确映射子类型。我没有看到这是一个选项,但很高兴听到是否有可能。
第二个想法是沿着以下几行......下面是类的第一次传递,顶级类有一个指示符(SubTypeType),关于子对象(SubTypeData)中包含的数据类型。我已经挖了一些Json.Net文档,并尝试了一些东西,但没有运气。
我们目前完全控制数据定义,但一旦部署,就会锁定。
public class MainClass
{
public SubType SubTypeType { get; set; }
public SubTypeClassBase SubTypeData { get; set; }
}
public class SubTypeClassBase
{
}
public class SubTypeClass1 : SubTypeClassBase
{
public string AaaField { get; set; }
}
public class SubTypeClass2 : SubTypeClassBase
{
public string ZzzField { get; set; }
}
相关分类