JSON.toJSONString()时出现$ref
今天在做webService接口联调时 返回的JSON数据 前端解析的时候遇到了这个问题。背景介绍下:后台传过去json数据对象集合包含对象集合的,调用 JSON.toJSONString(对象)时 对象包含的对象 除第一个正常外 后面全是$ref
String raw = JSON.toJSONString(对象);
解析的时候发现有大量的$ref,前台解析不了。
循环引用:当一个对象包含另一个对象时,fastjson就会把该对象解析成引用。引用是通过$ref标示的,下面介绍一些引用的描述
- "$ref":".." 上一级
- "$ref":"@" 当前对象,也就是自引用
- "$ref":"$" 根对象
- "$ref":"$.children.0" 基于路径的引用,相当于 root.getChildren().get(0)
解决方法:
用 JSON.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect) 禁止循环引用对象检测
之后所有数据正常