您的位置:首页 > Web前端 > JavaScript

json数据出现$ref: "$.list[0]"的解决办法

2017-09-29 00:00 211 查看
摘要: json数据出现$ref: "$.list[0]"的解决办法

最近线上遇到返回值问题,list转为json时候返回值中出现:$ref:"$.list.3.4.1[3]",发现这个问题是因为fastjson默认开启了“循环引用检测”,如果数据中出现对象嵌套的情况,就会出现上述问题。所以可以通过以下两种方式修正该问题:

1、直接修改代码,只需要在数据返回时,在代码强制关闭循环引用检测功能:

JSON.toJSONString(json, SerializerFeature.DisableCircularReferenceDetect) ;

2、修改配置文件,通过配置文件的修改不需要每个地方都需要通过代码显示关闭该特性:

<bean id="jsonConverter"

class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">

<property name="supportedMediaTypes" value="application/json;charset=UTF-8"/>

<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.Fiel dRetrievingFactoryBean">

<property name="staticField"

value="com.alibaba.fastjson.serializer.SerializerFeature.DisableCircularReferenceDetect">

</property>

</bean>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐