fastjson報$ref": $.data[2].indexs[0]迴圈引用錯誤
阿新 • • 發佈:2019-02-08
今天在做一個遞迴的時候遇到輸出的資料有$.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);