using System; using System.Text.Json; using System.Text.Json.Serialization; namespace MonoGame.Extended.Serialization.Json; /// /// Converts a value to or from JSON. /// public class RectangleFJsonConverter : JsonConverter { /// public override bool CanConvert(Type typeToConvert) => typeToConvert == typeof(RectangleF); /// public override RectangleF Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { var values = reader.ReadAsMultiDimensional(options); return new RectangleF(values[0], values[1], values[2], values[3]); } /// /// /// Throw if is . /// public override void Write(Utf8JsonWriter writer, RectangleF value, JsonSerializerOptions options) { ArgumentNullException.ThrowIfNull(writer); writer.WriteStringValue($"{value.Left} {value.Top} {value.Width} {value.Height}"); } }