public static void Main()
var deSerialized = JsonConvert.DeserializeObject<MyModel>("{\"myName\":\"My Name\",\"myPolygon\":{\"type\":\"Polygon\",\"coordinates\":[[[-100.0,45.0],[-98.0,45.0],[-99.0,46.0],[-100.0,45.0]]]}}");
Console.WriteLine("myName: " + deSerialized.myName);
Console.WriteLine("myPolygon: " + deSerialized.myPolygon?.type);
public string myName { get; set; }
[JsonConverter(typeof(MyPolygonConverter))]
public Polygon myPolygon { get; set; }
public string type { get; set; }
public double[][][] coordinates { get; set; }
public class MyPolygonConverter : JsonConverter<Polygon>
public override Polygon ReadJson(JsonReader reader, Type objectType, Polygon existingValue,
bool hasExistingValue, JsonSerializer serializer)
DumpReaderTokenTypeAndValue(reader);
Polygon poly = new Polygon();
while (reader.TokenType != JsonToken.EndObject)
DumpReaderTokenTypeAndValue(reader);
private void DumpReaderTokenTypeAndValue(JsonReader reader)
Console.WriteLine($"token type is {reader.TokenType}, value is {(reader.Value == null ? "null" : reader.Value.ToString())}");
public override bool CanWrite => false;
public override void WriteJson(JsonWriter writer, Polygon polygon, JsonSerializer serializer)
throw new NotImplementedException();