Class A{ private FieldClazz1 f1; private FieldClazz2 f2; } ArrayList list = new ArrayList; FieldClazz1 f1_0 = new FieldClazz1 ; FieldClazz2 f2_0 = new FieldClazz2 ; FieldClazz2 f2_1 = new FieldClazz2 ;
list.add(A(f1_0 ,f2_0 )); list.add(A(f1_0 ,f2_1 ));
将list 序列化之后,第二个 对象的 f1 字段 会变成$.data[0].f1 。 我认为这不是循环引用,只能算重复引用。加入‘SerializerFeature.DisableCircularReferenceDetect’ 会解决这个问题。但是如果真的出现循环引用,加入 DisableCircularReferenceDetect 会不会出现问题。