假设我有以下代码:
正如您所看到的,这些对象(
但是,如果我尝试将这些对象转换为JSON,例如使用Gson,那么由于递归而引发
现在,在JSON中是否有一种声明此类递归的方式?如果没有,那么是否有一种处理这种递归的方法?
还是我必须手动检查递归,删除它,将对象转换为JSON,然后在重建JSON字符串以Java对象时重新应用递归?
public class A {
B b;
public A() {
this.b = new B(this);
}
}
public class B {
A a;
B(A a) {
this.a = a;
}
}
正如您所看到的,这些对象(
A
和B
)相互引用,如果您尝试将对象转换为JSON代码,则会导致无限递归:A有B,B又有同样的A,A又有同样的B,依此类推。但是,如果我尝试将这些对象转换为JSON,例如使用Gson,那么由于递归而引发
StackOverflowError
(这完全合理)。现在,在JSON中是否有一种声明此类递归的方式?如果没有,那么是否有一种处理这种递归的方法?
还是我必须手动检查递归,删除它,将对象转换为JSON,然后在重建JSON字符串以Java对象时重新应用递归?