public class DecimalJsonConverter : JsonConverter
public override bool CanRead { get { return false; } }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
throw new NotImplementedException();
public override bool CanConvert(Type objectType)
return (objectType == typeof(decimal) || objectType == typeof(float) || objectType == typeof(double));
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
var val = JsonConvert.ToString(value);
writer.WriteRawValue(val);
[JsonConverter(typeof(DecimalJsonConverter))]
public decimal Bad { get; set; }
public decimal Good { get; set; }
public static void Main(string[] args)
string val = "{ \"Bad\":99999999.99999999, \"Good\":99999999.99999999 }";
var res = JsonConvert.DeserializeObject<DecimalObject>(val);
Console.WriteLine("Bad: " + res.Bad + ", Good: " + res.Good);