前段时间因为业务原因后端发送到前端数据,有一部分数据显示” $ref: "$.list[*].***” “的字符串,导致我的数据无法在页面解析,在前端找了很久的原因,最后发现是后端出的问题,原因后端发送JSON的时候会进行循环检测,将相同的数据进行整理,此时就显示我们一开始说的问题,问题图片如下:
解决办法:使用fastJSON工具在后端关闭循环检测即可
首先我们导入fastJSON坐标
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.78</version>
</dependency>
之后在需要发送JSON的部分写入SerializerFeature.DisableCircularReferenceDetect参数,用来关闭循环检测
//分页插件进行分页
PageHelper pageHelper=new PageHelper(doctorDao.findAllDoctor());
PageHelper.startPage(page, 20);
ArrayList<Doctor_information> allDoctor = doctorDao.findAllDoctor();
PageInfo pageInfo = new PageInfo(allDoctor);
//重点:SerializerFeature.DisableCircularReferenceDetect:关闭循环检测
return JSON.toJSONString(pageInfo, SerializerFeature.DisableCircularReferenceDetect);
此时我们重新运行,就可以看见之前异常的数据恢复了