package com.alibaba.json.bvt.ref; import junit.framework.TestCase; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFeature; public class RefTest6 extends TestCase { /** * A -> B -> C -> B -> A * * @throws Exception */ public void test_0() throws Exception { A a = new A(); B b = new B(); C c = new C(); a.setB(b); b.setC(c); c.setB(b); b.setA(a); JSONObject jsonObject = new JSONObject(); jsonObject.put("a", a); jsonObject.put("c", c); String text = JSON.toJSONString(jsonObject, SerializerFeature.PrettyFormat); System.out.println(text); } private class A { private B b; public B getB() { return b; } public void setB(B b) { this.b = b; } } private class B { private C c; private A a; public C getC() { return c; } public void setC(C c) { this.c = c; } public A getA() { return a; } public void setA(A a) { this.a = a; } } private class C { private B b; public B getB() { return b; } public void setB(B b) { this.b = b; } } }