using System.Text.Json; using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Library.Common.Architecture; namespace ConverterExample { public class Person { public string Name { get; set; } = ""; public int Age { get; set; } public Address Address { get; set; } = new(); } public class Address { public string State { get; set; } = ""; public string City { get; set; } = ""; } public class AddressConverter : BaseEntityConverter
{ public override void ReadPropertyName(ref Utf8JsonReader reader, string propertyName, JsonSerializerOptions options, ref Address? result) { result ??= new(); switch (propertyName) { case "city": result.City = reader.GetString() ?? ""; break; case "state": result.State = reader.GetString() ?? ""; break; } } public override void Write(Utf8JsonWriter writer, Address value, JsonSerializerOptions options) { writer.WriteStartObject(); writer.WriteString("state", value.State); writer.WriteString("city", value.City); writer.WriteEndObject(); } } public class PersonConverter : BaseEntityConverter