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

回到顶部