今天在做一个递归的时候遇到输出的数据有$.data[2].indexs[0]的情况,在网上查询了fastjson默认对重复的引用使用
ref方式。
DisableCircularReferenceDetect:消除对同一对象循环引用的问题,默认为false
FastJson提供了SerializerFeature.DisableCircularReferenceDetect这个序列化选项,用来关闭引用检测。关闭引用检测后,重复引用对象时就不会被$ref代替,但是在循环引用时也会导致StackOverflowError异常。
错误的输出示例:
{
"function_id": 54,
"function_name": "行业点取值函数",
"indexs": [{
"$ref": "$.data[2].indexs[0]"
}, {
"$ref": "$.data[2].indexs[1]"
}
关闭循环引用示例如下:
JSONArray list = HelpCenterManageService.getAllNodes();
JSONObject json = new JSONObject();
JSON.toJSONString(list, SerializerFeature.DisableCircularReferenceDetect);
---------------------
作者:随风yy
来源:CSDN
原文:https://blog.csdn.net/yaomingyang/article/details/80684576
版权声明:本文为博主原创文章,转载请附上博文链接!