using System.Text.Json.Serialization;
var myObject = new MyClass
string json = JsonSerializer.Serialize(myObject, new JsonSerializerOptions { WriteIndented = true });
[JsonConverter(typeof(MyClassCustomConverter))]
public int Prop1 { get; set; }
public string Text { get; set; }
public class MyClassCustomConverter : JsonConverter<MyClass>
public override MyClass Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
throw new NotImplementedException();
public override void Write(Utf8JsonWriter writer, MyClass value, JsonSerializerOptions options)
writer.WriteStartObject();
writer.WritePropertyName("SubObj");
writer.WriteStartObject();
writer.WriteNumber(nameof(value.Prop1), value.Prop1);
writer.WritePropertyName("SubObj2");
writer.WriteStartObject();
writer.WriteString(nameof(value.Text), value.Text);