I need to add KnownType to the code below to serialize it. When I do this, the generated JSON looks like this:
JSON form of Adult with 1 child: {"age":42,"name":"John","children":[{"__type":" Child:#TestJson","age":4,"name":"Jane","fingers":10}]}
How do I include __type in it: "Child: #TestJson"? We return hundreds of these elements for some queries and add additional text.
Full code:
using System; using System.Collections.Generic; using System.IO; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; namespace TestJson { class Program { static void Main(string[] args) { Adult parent = new Adult {name = "John", age = 42}; MemoryStream stream1 = new MemoryStream(); DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Adult)); ser.WriteObject(stream1, parent); stream1.Position = 0; StreamReader sr = new StreamReader(stream1); Console.Write("JSON form of Adult with no children: "); Console.WriteLine(sr.ReadToEnd()); Child child = new Child { name = "Jane", age = 4, fingers=10 }; stream1 = new MemoryStream(); ser = new DataContractJsonSerializer(typeof(Child)); ser.WriteObject(stream1, child); stream1.Position = 0; sr = new StreamReader(stream1); Console.Write("JSON form of Child with no parent: "); Console.WriteLine(sr.ReadToEnd());
source share