Сериализация JSON Джексона, предотвращение рекурсии путем определения уровня

Я использую библиотеку Джексона для сериализации моих объектов 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, уровень = 0 (0 < 2 ok) -> сериализовать
  • сериализовать a.b, уровень = 1 (1 < 2 ok) -> сериализовать
  • сериализовать a.b.a, уровень = 2 (2 < 2 неверно) -> стоп

Заранее спасибо.

30
задан Goran Nastov 17 April 2012 в 12:53
поделиться