package com.alibaba.json.bvt.ref; import org.junit.Assert; import junit.framework.TestCase; import com.alibaba.fastjson.JSON; public class RefTest16 extends TestCase { public void test_0() throws Exception { Person pA = new Person("a"); Person pB = new Person("b"); Family fA = new Family(); fA.setMembers(new Person[] { pA, pB }); fA.setMaster(pA); Person pC = new Person("c"); Person pD = new Person("d"); Family fB = new Family(); fB.setMembers(new Person[] { pC, pD }); fB.setMaster(pC); Family[] familyArray = new Family[] { fA, fB }; String text = JSON.toJSONString(familyArray); System.out.println(text); Family[] result = JSON.parseObject(text, Family[].class); Assert.assertSame(result[0].getMaster(), result[0].getMembers()[0]); Assert.assertSame(result[1].getMaster(), result[1].getMembers()[0]); } public static class Family { private Person master; private Person[] members; public Person getMaster() { return master; } public void setMaster(Person master) { this.master = master; } public Person[] getMembers() { return members; } public void setMembers(Person[] members) { this.members = members; } } public static class Person { private String name; public Person(){ } public Person(String name){ this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } }