1. 程式人生 > >fastjson中重複實體的引用問題

fastjson中重複實體的引用問題

今天在做一個遞迴的時候遇到輸出的資料有$.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 
版權宣告:本文為博主原創文章,轉載請附上博文連結!