using Newtonsoft.Json.Linq;
public static void Main()
DPInfo info = JsonConvert.DeserializeObject<DPInfo>(json);
Console.WriteLine("key: " + info.key);
Console.WriteLine("points: " + string.Join(", ", info.points[0].Select(x => x.ToString())));
Console.WriteLine("last: " + info.last);
public class DPInfoConverter : JsonConverter
public override bool CanConvert(Type objectType)
return objectType == typeof(DPInfo);
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
JObject obj = JObject.Load(reader);
JProperty points = obj.Properties().FirstOrDefault(p => p.Name != "last");
points = points.Value.ToObject<decimal[][]>(),
public override bool CanWrite
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
throw new NotImplementedException();
[JsonConverter(typeof(DPInfoConverter))]
public string key { get; set; }
public decimal[][] points { get; set; }
public long last { get; set; }