【发布时间】:2012-04-28 19:38:50
【问题描述】:
我使用 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,则序列化会这样:
- 序列化a,level = 0(0 序列化
- 序列化 a.b,级别 =1 (1 序列化
- 序列化 a.b.a,级别 = 2(2 停止
提前致谢。
【问题讨论】:
-
您是否能够最终找到一种方法来指定您希望序列化发生的递归深度?
-
我通过在引用的实体上使用@JsonIgnore 解决了(带有递归),所以我不包含在序列化中。当我需要特定实例时,我已经有了 ID,然后我会进行额外的调用以获取实例。我没有使用通用的解决方案,幸好我的案例很少。
标签: java json serialization jackson