1.先上bug代码:
\"data\": {
\"currentPage\": 1,
\"currentResult\": 0,
\"entityOrField\": false,
\"pageListData\": [{
..........
\"isTranspond\": 1,
\"likesNum\": 0,
\"mCircleBO\": {
\"addTime\": \"2018-12-20 11:34:50\",
\"askId\": 4869476,
\"circleList\": \"\",
\"collectAccount\": \"\",
\"contents\": \"云烟成雨\",
\"dateStr\": \"14分钟前\",
\"dynamicAccount\": \"\",
\"ext1\": \"\",
\"fansAccount\": \"\",
\"followAccount\": \"\",
\"headPhoto\": \"\",
\"id\": 636,
\"isDisplay\": 1,
\"isFavorite\": \"\",
\"isFollow\": \"\",
\"isLike\": \"\",
\"isTranspond\": \"\",
\"likesNum\": \"\",
\"mCircleBO\": \"\",
\"messagesNum\": \"\",
\"msgAnswerList\": \"\",
\"originId\": \"\",
\"pId\": \"\",
\"page\": \"\",
\"pmType\": \"\",
\"postList\": [],
\"ques \": \"\",
\"spId\": \"\",
\"sqName\": \"\",
\" Name\": \"\",
\"transpondNum\": \"\",
\"trueName\": \"\",
\"userName\": \"vlog\"
},
...........
}, {
\"addTime\": \"2018-12-20 11:48:23\",
\"askId\": 4869466,
............
\"likesNum\": 0,
\"mCircleBO\": {
\"$ref\": \"$.data.pageListData[0].mCircleBO\"
},
\"messagesNum\": 0,
............
\"userName\": \"xiaoyi\"
},
在上述代码中出现的 \"$ref\": \"$.data.pageListData[0].mCircleBO\"是因为此处的mCircleBO和上面的mCircleBO装配的同一个对象,所以出现了$ref\": \"$.data.pageListData[0].mCircleBO,
百度后知道:
问题分析:
循环引用:当一个对象包含另一个对象时,fastjson就会把该对象解析成引用。引用是通过$ref标示的,下面介绍一些引用的描述
\"$ref\":\"..\" 上一级
\"$ref\":\"@\" 当前对象,也就是自引用
\"$ref\":\"$\" 根对象
\"$ref\":\"$.children.0\" 基于路径的引用,相当于 root.getChildren().get(0)
知道了后,解决方案:
原先返回格式:
JsonResultUtils.successWithData(\"查询成功\",page);
修改为:
1,JsonResultUtils.successWithData(\"查询成功\",JSON.toJSON(page));
2. JsonResultUtils.successWithData(\"查询成功\",JSON.toJSONString(page,SerializerFeature.DisableCircularReferenceDetect));
其中:1和2都可以解决,我选择的是1,是因为1的返回格式和原来的一样,2的返回格式虽然也是json,但和原来的不一样了
继续阅读与本文标签相同的文章
-
阿里雷卷:Reactive 基金会的成立将对开发方式带来哪些影响?
2026-05-18栏目: 教程
-
8 分钟了解 Kubernetes
2026-05-18栏目: 教程
-
Helm 从入门到实践 | 从 0 开始制作一个 Helm Charts
2026-05-18栏目: 教程
-
阿里云突发性能实例t5 和共享型实例xn4 n4的区别
2026-05-18栏目: 教程
-
【DockerCon2017技术解读】Docker特性介绍
2026-05-18栏目: 教程
