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

偶然遇到了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;
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从iOS7.0开始, tableViewCell的分隔线总会在左侧留意下一点小间距, 这是苹果更新系统之后闹出的幺...
    面糊阅读 1,303评论 0 50
  • 壹 今天是4月23——读书日。 怪不得朋友圈里应景的人真不少: 有特别直白发一个如《会饮篇》的封面暗示自己逼格高的...
    大道皮皮阅读 1,041评论 5 8
  • 我的人生最重要的3次选择。因为这3次选择改变了我未来要走的路。 1.从城南转到三小——忘了为什么父母要帮我转校,当...
    MrKang丶阅读 451评论 0 0
  • 多云 没做什么的一天,有些无聊的一天。 上午睡到很晚才起床,之后看会儿英语,中午还是点了外卖。 看完了查令十字街8...
    Cheryl_ak717阅读 196评论 0 0