美文网首页
fastjson 浮点型数据序列化后变成科学记数格式

fastjson 浮点型数据序列化后变成科学记数格式

作者: 说你还是说我 | 来源:发表于2018-11-23 13:51 被阅读0次

    偶然遇到了fastjson在序列化浮点型数据为String类型的时候,出现了科学记数法的格式。
    由此开始解决问题。
    官方给出的解决办法如下:

    方法一:

    https://github.com/alibaba/fastjson/wiki/ObjectSerializer_cn
    自定义一个序列化对象,替换掉官方默认指定类型的序列化对象。默认的对象类型在SerializeConfig中的initSerializers()方法中初始化;

    方法二:

    https://github.com/alibaba/fastjson/issues/656
    不要使用浮点型的数据,换成Decimal类型;

    方法三:

    实现ValueFilter接口,这个接口只对key-value格式的数据产生效果。因为只有key-value格式的数据才会被fastjson的MapSerializer序列化对象调用。也就是说只有MapSerializer才会去调用ValueFilter的实现.

    public class DoubleToStringFilter implements ValueFilter {
    
        @Override
        public Object process(Object object, String name, Object value) {
            if(null != value && value instanceof Double) {
                BigDecimal b = BigDecimal.valueOf((Double) value);
                return  b.longValue();
            }
            return value;
        }
    }
    

    相关文章

      网友评论

          本文标题:fastjson 浮点型数据序列化后变成科学记数格式

          本文链接:https://www.haomeiwen.com/subject/xfqjqqtx.html