Jackson JSON序列化,通过级别定义避免递归
我使用Jackson库将我的pojo对象序列化为JSON
表示形式。例如,我有A类和B类:
class A { private int id;
private B b;
constructors...
getters and setters
}
class B {
private int ind;
private A a;
constructors...
getters and setters
}
如果我要序列化类A中的对象,则有可能在序列化时获得递归。我知道我可以通过使用停止它@JsonIgnore
。
例如,如果级别为2,则序列化将以这种方式进行:
- 序列化一个,级别= 0(0 <2正常)->序列化
- 序列化ab,级别= 1(1 <2 ok)->序列化
- 序列化ABA,级别= 2(2 <2不正确)->停止
提前致谢。
回答:
我最近遇到了一个类似的问题:杰克逊-具有双向关系的实体的序列化(避免循环)
因此,解决方案是升级到Jackson 2.0,并在类中添加以下注释:
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@id")
public class SomeEntityClass ...
这很完美。
以上是 Jackson JSON序列化,通过级别定义避免递归 的全部内容, 来源链接: utcz.com/qa/408251.html