Io uso Spring e sto creando un servizio REST.Have jackson ignora i campi che sono pigri inizializzati durante la serializzazione a JSON
Ecco una parte del mio regolatore:
@RequestMapping("/get")
public @ResponseBody Person getPerson() {
Person person = personRepository.findOne(1L);
//(1) person.setRoles(null);
return person;
}
ruoli della persona sono pigri inizializzato, e non serve al momento. Quando (1) è commentata, tutto ciò non riuscirà con un
org.springframework.http.converter.HttpMessageNotWritableException: Impossibile scrivere JSON: impossibile inizializzare pigramente una collezione di ruolo: no.something.project .Person.roles, non potevano inizializzare procura - senza Session ecc
posso risolvere questo facendo come (1), impostare manualmente su null (o qualche altro valore), in modo da non sicuro quando Jackson tenta di serializzare il mio oggetto.
Tuttavia, questo è fastidioso e deve essere fatto molte volte luoghi diversi. Mi piacerebbe che alcune semplici soluzioni ignorassero quei pigri campi inizializzati quando non erano inizializzati, o semplicemente li impostassero su null.
Nota: @JsonIgnore sui valori sull'oggetto non è una soluzione, come negli altri casi voglio che questi valori siano inclusi.
Come si usa jackson-modulo-ibernazione con la Primavera? Il codice sul wiki manca qualcosa. – Matsemann
Ho fatto un pullrequest al progetto, fornendo codice di lavoro. – Matsemann
@Matsemann Ho ottenuto la soluzione qui e fornito il codice funzionante: http://stackoverflow.com/questions/21708339/avoid-jackson-serialization-on-non-fetched-lazy-objects/21760361#21760361 – r1ckr