2012-01-23 24 views
6

Ho un oggetto che è il riferimento da parte di altri due oggettiJSON Jackson condivisa fa riferimento

Io uso Jackson di serializzare i miei oggetti, ma ho trovato il mio oggetto condiviso viene duplicato piuttosto che di riferimento.

Il motivo è che ho capito che Jackson può serializzare solo per valore e non per riferimento.

Ho cercato inutilmente una soluzione consigliata.

Qualsiasi aiuto è apprezzato.

corrente Jackson Lib 1.8.3

risposta

5

Attualmente (1.9) si dovrebbe scrivere serializzatore personalizzato, deserializzatore, per gestire questa situazione. Non esiste un supporto pronto all'uso per gestire l'identità dell'oggetto.

Di framework Java, l'unico che so supportare le identità degli oggetti è XStream.

Per quello che vale, c'è da tempo un feature request per Jackson per aggiungere supporto. E c'è una ragionevole possibilità che questo funzioni per 2.0. Ma anche se lo sarà, ci vorrà un po '(un mese o due).

UPDATE (aprile 2013): Come per l'altra risposta accettata, questa funzione - @JsonIdentityInfo - è stata effettivamente inclusa in Jackson 2.0 ed è disponibile. Non c'è bisogno di serializzatori (de) personalizzati.

+0

Grazie per la risposta, ho visto la richiesta di funzionalità, ma stava pregando che si trattava di uno molto vecchio :(. Penso di aver trovato una soluzione, assegnerò al mio oggetto condiviso un riferimento e un collegamento al riferimento quando desirializzo.Grazie ancora, molto apprezzato – HKalsi

+0

Sì, vecchio, perché è stato implementato per 2.0 ed è stato disponibile da allora aggiornerò la mia risposta – StaxMan

Problemi correlati