1. 程式人生 > >fastjson生成JSON字符串的時候出現$ref

fastjson生成JSON字符串的時候出現$ref

too SM key 生成 pan new post .cn flow

fastjson生成JSON字符串的時候出現$ref

轉載自:http://wuzhuti.cn/201426!826!05!130202.html

可以通過選項 DisableCircularReferenceDetect來禁止循環引用檢測:

JSON.toJSONString( yourObject, SerializerFeature.DisableCircularReferenceDetect);


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


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)

fastjson生成JSON字符串的時候出現$ref