Uso la libreria Jackson per la serializzazione dei miei oggetti pojo nella rappresentazione JSON
. Per esempio io ho di classe A e di classe B:serializzazione Jackson JSON, evasione della ricorsione per definizione del livello
class A {
private int id;
private B b;
constructors...
getters and setters
}
class B {
private int ind;
private A a;
constructors...
getters and setters
}
Se voglio serializzare oggetto dalla classe A non v'è certa possibilità di ottenere la ricorsione mentre è serializzato. So che posso fermarlo usando @JsonIgnore
.
È possibile limitare la serializzazione a livello di profondità?
Per esempio, se il livello è 2, la serializzazione andrà in questo modo:
- serializzare un livello = 0 (0 < 2 ok) -> serializzare
- serialize ab, livello = 1 (1 < 2 ok) -> serializzare
- serialize aba, livello = 2 (2 < 2 non è vero) -> fermata
Grazie in anticipo.
Sei riuscito a trovare finalmente un modo per specificare la profondità di ricorsione per la quale si desidera che la serializzazione si verifichi? –
Ho risolto usando @JsonIgnore sulle entità di riferimento (con ricorsione), quindi semplicemente non includo nella serializzazione. Quando ho bisogno dell'istanza specifica, ho già l'ID e faccio una chiamata aggiuntiva per ottenere l'istanza. Non ho usato una soluzione generale, per fortuna ho pochi casi. –