using System; using System.Drawing; using System.Text.Json; using System.Text.Json.Serialization; namespace FizzyLauncher.Text.Json { public class JsonSizeConverter : JsonConverter { public override Size Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { Size rs = new Size(0, 0); if (reader.TokenType == JsonTokenType.String) { string[] parts = reader.GetString().Split(','); if (parts.Length != 2) { return rs; } int w = 0; int h = 0; if (!int.TryParse(parts[0].Trim(), out w)) w = 0; if (!int.TryParse(parts[1].Trim(), out h)) h = 0; return new Size(w, h); } return rs; } public override void Write(Utf8JsonWriter writer, Size value, JsonSerializerOptions options) { writer.WriteStringValue(string.Format("{0}, {1}", value.Width.ToString(), value.Height.ToString())); } } }