Json.NET 十进制序列化问题



如果我有一个代表一些日元(即指数零货币)金额的小数,例如3131313,我看到默认情况下 Json.NET 将值序列化为 3131313.0。

有没有办法让它序列化文字值3131313?

通过实现自己的转换器,您可以序列化为

var str= JsonConvert.SerializeObject(
     new {s="aaa",d=(decimal)3131313},
     new MyConverter());

-

public class MyConverter : JsonConverter
{
    public override bool CanConvert(Type objectType)
    {
        if (objectType == typeof(decimal)) return true;
        return false;
    }
    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.WriteValue(Convert.ToInt64(value));
    }
}

相关内容

  • 没有找到相关文章

最新更新