我们希望能够将C#类的JSON序列化/反序列化,其中主类具有一个多态子对象的实例。使用Json.Net的TypeNameHandling.Auto设置可以轻松完成此操作。但是,我们希望在没有"$type"字段的情况下进行操作。
首先考虑将"$type"重命名为我们选择的值,并使类型的值成为将子类型正确映射的枚举。我没有看到这是一种选项,但如果可能的话,我很乐意听取意见。
其次,以下是类的第一次尝试,顶级类具有指示符(SubTypeType),以指示子对象(SubTypeData)中包含的数据类型是什么。我已经在Json.Net文档中挖掘了一些内容,并尝试了一些东西,但没有成功。
我们目前对数据定义拥有完全控制,但一旦部署,事情就会被锁定。
首先考虑将"$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; }
}