日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

前端解析返回的对象时json显示$ref问题的解决

發布時間:2023/12/13 HTML 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 前端解析返回的对象时json显示$ref问题的解决 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? 在mapper中寫的語句,結果集中association,采用的一個對象,整個list列表中每個元素有一個對象元素,如果第二個元素中有一個與第一個元素中對象同名的,就會去引用上一個元素的地址,在json前臺解析的時候就不會解析出來相應對象的數據,具體如下,根據網上搜索的原因的例子有:

?

DisableCircularReferenceDetect來禁止循環引用檢測:

JSON.toJSONString(..., SerializerFeature.DisableCircularReferenceDetect)

當進行toJSONString的時候,默認如果重用對象的話,會使用引用的方式進行引用對象。

[java]?view plain?copy
  • "顏色":?[??
  • ??????{??
  • ????????"$ref":?"$.itemSkuList[0].itemSpecificationList[0]"??
  • ??????},???
  • ??????{??
  • ????????"$ref":?"$.itemSkuList[1].itemSpecificationList[0]"??
  • ??????}??
  • ????]??
  • ?

    循環引用

    很多場景中,我們需要序列化的對象中存在循環引用,在許多的json庫中,這會導致stackoverflow。在功能強大的fastjson中,你不需要擔心這個問題。例如:

    [java]?view plain?copy
  • A?a?=?new?A();??
  • B?b?=?new?B(a);??
  • a.setB(b);??
  • String?text?=?JSON.toJSONString(a);?//{"b":{"a":{"$ref":".."}}}??
  • A?a1?=?JSON.parseObject(text,?A.class);??
  • Assert.assertTrue(a1?==?a1.getB().getA());??
  • ?

    引用是通過"$ref"來表示的

    引用描述
    "$ref":".."上一級
    "$ref":"@"當前對象,也就是自引用
    "$ref":"$"根對象
    "$ref":"$.children.0"基于路徑的引用,相當于 root.getChildren().get(0)

    對于本博主的項目,其解決方案是,1).將結果集中association的類型寫成map

    2).在最后取得包含了對象的list列表后,將該列表轉換為json格式,本博主代碼

    PageInfo<Map<String,Object>> pageInfo = rentService.getRentOrderList(Integer.valueOf(pageNumber), Integer.valueOf(pageSize), paramMap);Map<String,Object> data = new HashMap<String,Object>();data.put("orderList",pageInfo.getList());data.put("total", pageInfo.getTotal());Object objData = JSONObject.toJSON(data);

    ?

    轉載于:https://www.cnblogs.com/xiaoyao-001/p/9269779.html

    總結

    以上是生活随笔為你收集整理的前端解析返回的对象时json显示$ref问题的解决的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。