使用JAXRS指定最大深度?

时间:2015-04-10 05:48:28

标签: java json jackson jax-rs

我使用Jackson JAX-RS提供商发现自己处于一个奇怪的地方。说我有两个简单的类;

class A {
    public class A() {}
    public B b;
}

class B {
    public class B() {}
    public A a;
}

我确实创建了一些实例;

A a = new A();
B b = new B();
a.b = b;
b.a = a;

基本上是反向链接。如果我尝试序列化这个,我得到预期的堆栈溢出,因为它永远追逐循环引用。这显然是一个人为的例子,但它很好地再现了这个问题。我想做的是以某种方式告诉杰克逊不要超过1级,所以在我的例子中,我期待类似的东西;

{
  "b": {
      // don't serialize a again, but DO serialize every other property on b
  }
}

这可行吗?我是否坚持做一个丑陋的对象映射以使其工作?

1 个答案:

答案 0 :(得分:0)

可悲的是,阴影物体成为唯一可行的选择..