1. 程式人生 > >fastjson報$ref": $.data[2].indexs[0]迴圈引用錯誤

fastjson報$ref": $.data[2].indexs[0]迴圈引用錯誤

  • 今天在做一個遞迴的時候遇到輸出的資料有$.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);