文档章节

fastjson问题汇总

菜蚜
 菜蚜
发布于 2015/06/15 10:22
字数 193
阅读 57
收藏 0

1、返回json有部分数据有bug,转换json异常$ref,如:“奶粉” || 已解决 // 解决循环引用,对应的配置见spring-web.xml

解决方式1:

JSONObject.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect);

解决方式2:

<bean id="fastJsonHttpMessageConverter"
        class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>text/html;charset=UTF-8</value>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
        <property name="features">
            <array value-type="com.alibaba.fastjson.serializer.SerializerFeature">
                <value>DisableCircularReferenceDetect</value>
            </array>
        </property>
    </bean>
    <bean id="DisableCircularReferenceDetect" class="org.springframework.beans.factory.config.FieldRetrievingFactoryBean">
        <property name="staticField" value="com.alibaba.fastjson.serializer.SerializerFeature.DisableCircularReferenceDetect"></property>
    </bean>

2、fastjson对于float、double类型的数字精度丢失的问题

com.alibaba.fastjson.serializer.DoubleSerializer#write 有这么一段:

doubleText = Double.toString(doubleValue);
                if (doubleText.endsWith(".0")) {
                    doubleText = doubleText.substring(0, doubleText.length() - 2);
                }

对于float类型也是一样,com.alibaba.fastjson.serializer.FloatCodec#write

解决方案:

、重写序列化器;

、添加ValueFilter:

ValueFilter filter = new ValueFilter() {
            @Override
            public Object process(Object object, String name, Object value) {
                if (value instanceof BigDecimal || value instanceof Double || value instanceof Float) {
                    return new BigDecimal(value.toString());
                }
                return value;
            }
        };

 

© 著作权归作者所有

共有 人打赏支持
菜蚜
粉丝 28
博文 76
码字总数 36325
作品 0
杭州
程序员
私信 提问
使用webmagic遇到的问题及解决办法

感谢黄大写的垂直爬虫框架webmagic,简化了我的工作,少些了很多代码.这里对使用过程中遇到的问题,已经如何解决的,做一些汇总和梳理,希望能对别人有一定的帮助,若有错误,请指出,俺改正. 编程环...

简单同学
2014/01/13
4.8K
7
fastjson-1.1.35 发布

源码:https://github.com/alibaba/fastjson 下载:http://repo1.maven.org/maven2/com/alibaba/fastjson/1.1.35/ 文档:https://github.com/alibaba/fastjson/wiki/%E5%B8%B8%E8%A7%81%E9%......

wenshao
2013/07/28
5K
7
fastjson 发布 1.2.36 和 1.1.61.android,支持 Kotlin

fastjson 发布了 1.2.36 和 1.1.61.android,两个版本都已内置支持 Kotlin。具体更新如下: fastjson-1.2.36 这个版本内置开始支持kotlin,进一步提升float/double的parse性能,提升序列化的...

wenshao
2017/08/09
1K
3
fastjson发布1.1.3版本

Fastjson 1.1.3是一个重要的功能增强版本,在这个版本开始,fastjson支持循环引用,完善支持WriteClassName的特性,使得fastjson开始具备替换hessian和java serialize的能力。 支持循环引用。...

wenshao
2011/08/29
2.1K
4
fastjson 发布 1.0.6 版本

项目首页 http://code.alibabatech.com/wiki/display/FastJSON/Home 版本1.0.6是一个完善版本,持续功能增强和bug修复。内置对File、URI、URL、InetAddress、InetSocketAddress、UUID等类的序...

wenshao
2011/06/24
5.2K
2

没有更多内容

加载失败,请刷新页面

加载更多

乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxprobe16
26分钟前
0
0
OSChina 周日乱弹 —— 没时间 没头发 但有钱

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @开源中国总经办主任 :分享齐一的单曲《这个年纪》 《这个年纪》- 齐一 手机党少年们想听歌,请使劲儿戳(这里) @肿肿卷 :我真的可以睡一天...

小小编辑
今天
30
4
Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
3
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部