public static void Main()
var data = new Data<ExtendedSubData>
SubData = new ExtendedSubData
var json = SerializData(data);
private static string SerializData<TSubData>(Data<TSubData> data)
return JsonSerializer.Serialize<object>(data);
public class Data<TSubData>
public string Prop1 { get; set; }
public TSubData SubData { get; set; }
public abstract class SubData
public string Prop2 { get; set; }
public class ExtendedSubData : SubData
public string Prop3 { get; set; }