package com.alibaba.json.bvt.serializer; import org.junit.Assert; import junit.framework.TestCase; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.serializer.SerializerFeature; public class CircularReferencesTest extends TestCase { public void test_0() throws Exception { A a = new A(); B b = new B(a); a.setB(b); String text = JSON.toJSONString(a); A a1 = JSON.parseObject(text, A.class); Assert.assertTrue(a1 == a1.getB().getA()); } public void test_1() throws Exception { A a = new A(); B b = new B(a); a.setB(b); String text = JSON.toJSONString(a, SerializerFeature.UseISO8601DateFormat); A a1 = JSON.parseObject(text, A.class); Assert.assertTrue(a1 == a1.getB().getA()); } public void test_2() throws Exception { A a = new A(); B b = new B(a); a.setB(b); String text = JSON.toJSONString(a, true); A a1 = JSON.parseObject(text, A.class); Assert.assertTrue(a1 == a1.getB().getA()); } public static class A { private B b; public A(){ } public A(B b){ this.b = b; } public B getB() { return b; } public void setB(B b) { this.b = b; } } public static class B { private A a; public B(){ } public B(A a){ this.a = a; } public A getA() { return a; } public void setA(A a) { this.a = a; } } }