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>
最近线上遇到返回值问题,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>
相关文章推荐
- 解析json对象出现$ref: "$.list[0]"的解决办法
- 向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- Java JSONObject数组使用时出现"nullpointerexception"的解决办法
- vs上出现"未能加载项目文件,根级别上的数据无效.Microsoft.WinFx.targets"的解决办法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- Gson解析Json数据内有非法字符("",回车,etc)时的解决办法
- 前台解决Json数据中出现"$ref"的问题
- Restful框架中导入数据库表,选择Application/Json选项显示数据时出现500错误的解决办法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- Unity中启动VS时出现"Visual Studio 2010 Shell 无效的许可证数据"的解决办法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
- MySQL中数据备份或转移后出现“使用中”和"doesn’t exist"解决办法
- 向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法
- ThinkPHP2.0操作MSSQL获取数据,出现Incorrect syntax near the keyword 'AS'. 错误的解决办法