Utilizo la biblioteca Jackson para la serialización de mis objetos Pojo en la representación JSON
. Por ejemplo, tengo clase A y clase B:Jackson JSON serialización, evitación de recursión por definición de nivel
class A {
private int id;
private B b;
constructors...
getters and setters
}
class B {
private int ind;
private A a;
constructors...
getters and setters
}
Si desea realizar una serie de objetos de la clase A hay cierta posibilidad de conseguir la recursividad si bien es serializado. Sé que puedo detenerlo usando @JsonIgnore
.
¿Es posible limitar la serialización por nivel de profundidad?
Por ejemplo, si el nivel es 2, la serialización se ve de esta manera:
- serializar un nivel = 0 (0 < 2 OK) -> serializar
- serializar AB, nivel = 1 (1 < 2 OK) -> serializar
- aba serializar, nivel = 2 (2 < 2 no es cierto) -> parada
Gracias de antemano.
¿Pudo encontrar finalmente la manera de especificar la profundidad de recursión para la que deseaba que se realizara la serialización? –
Lo resolví usando @JsonIgnore en las entidades referenciadas (con recursividad), así que simplemente no incluí en la serialización. Cuando necesito la instancia específica, ya tengo la ID y hago una llamada adicional para obtener la instancia. No utilicé una solución general, afortunadamente tengo pocos casos. –