在controller 中, 引用该方法,返回一个json对象 Map<String, Object> data = customService.loadindividualStyle(searchMap);(该方法中 for 循环封装实体类, 重复封装了一个 对象,) 遇到问题, 返回的json对象出现$ref{对象,地址值,}
例如上述情况造成对象循环引用 fastjson有循环引用机制,返回的json对象出现$ref{对象,地址值,}
解决办法:
忽略循环引用,但是这样容易造成内存泄漏,慎用:
1、逐个解决,//转换json对象,防止重复引用 String json = JSON.toJSONString(data,SerializerFeature.DisableCircularReferenceDetect);
2、全局设置,springMVC为例 在定义的messageConverter转换类配置属性<value>DisableCircularReferenceDetect</value>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="fastJsonConfig" ref="fastJsonConfigExt" />
<property name="supportedMediaTypes">
<list>
<value>application/json; charset=UTF-8</value>
<value>application/x-www-form-urlencoded; charset=UTF-8</value>
</list>
</property>
<property name="features">
<list>
<!-- 全局关闭循环引用检查,最好是不要关闭,不然有可能会StackOverflowException -->
<value>DisableCircularReferenceDetect</value>
</list>
</property>
</bean>