Home >Backend Development >C++ >How Can I Serialize and Deserialize Polymorphic Child Objects in JSON.NET Without a '$type' Field?
Data types with polymorphic sub -objects with JSON.NET serialization and desertileization
Use the $ Type field
to add a TypeNameHandling.Auto
field to JSON to indicate the type of the sub -object. However, this will introduce an unnecessary field. $type
attribute to indicate the sub -type. However, this requires the container class to include sub -object instances in order to access the $type
attribute during serialization. Type
Type
The sub -type attributes in the base class
JsonConverter
Custom sub -type converter Type
code implementation
ReadJson
The following prototype implementation explains this method: CanConvert
fields, and provides a flexible solution for serialized polymer objects.
<code class="language-json">// JSON,枚举序列化为名称 {"AaaField":"test","Type":"Type1"}</code>This Revned Output Avoids Unnecessary Phrassion Like "The Default Approach is ..." While Maintaining The Original Meaning and Struture. Re Concise Language where approprity. The Image Remains in ITS Original format and local. Remember to file in The
<code class="language-csharp">// 包含 Type 属性的基类 public class SubTypeClassBase { [JsonConverter(typeof(StringEnumConverter))] public SubType Type { get; set; } } // 具有特定字段的子类 public class SubTypeClass1 : SubTypeClassBase { public string AaaField { get; set; } } public class SubTypeClass2 : SubTypeClassBase { public string ZzzField { get; set; } } // 自定义转换器 public class SubTypeClassConverter : JsonConverter { // ... (实现如答案中所述) ... }</code>section with the activity impitytation of the custom converter.
The above is the detailed content of How Can I Serialize and Deserialize Polymorphic Child Objects in JSON.NET Without a '$type' Field?. For more information, please follow other related articles on the PHP Chinese website!