¿Cómo puedo forzar un número mínimo de lugares decimales en Json.net?

¿Cómo puedo forzar un número mínimo de lugares decimales en Json.net?

Puedes hacerlo con un convertidor JSON personalizado:

class DecimalJsonConverter : JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        return objectType == typeof (decimal);
    }

    public override object ReadJson(JsonReader reader, Type objectType, object existingValue,
        JsonSerializer serializer)
    {
        throw new NotImplementedException();
    }

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
    {
        writer.WriteRawValue(((decimal) value).ToString("F2", CultureInfo.InvariantCulture));
    }
}

Este es un convertidor muy básico. Es posible que deba ampliarlo para que admita otros tipos de punto flotante, o tal vez incluso tipos enteros también.

Ahora cree una instancia de su serializador y pásele su convertidor personalizado, así:

var serializer = new JsonSerializer();
serializer.Converters.Add(new DecimalJsonConverter());