public Vector2(float x, float y)
public Vector2 Position { get; init; }
public static class Vector2Ext
public static Vector2 ToVector2(this string str)
var coords = str.Replace("{", "").Replace("}", "").Trim().Split(" ", 2);
float.TryParse(coords[0].Split(":")[1], out float x);
float.TryParse(coords[1].Split(":")[1], out float y);
return new Vector2(x, y);
public static string ToJSON(this object obj)
Vector2 vec = (Vector2)obj;
return $"{{ x:{vec.posX} y:{vec.posY} }}";
public static void Main()
Sprite sprite = new Sprite { Position = new Vector2(20, 10) };
string json = JSON.ToJSON(sprite);
var vec = JSON.ToObject<Sprite>(json);
Console.WriteLine($"X: {vec.Position.posX} Y: {vec.Position.posY}");