2012-01-23 21 views
6

que tienen un objeto que se referencia por otros dos objetosJSON Jackson referencias compartidas

utilizo Jackson para serializar mis objetos, pero he encontrado mi objeto compartido se duplica en lugar de referencia.

La razón es que entiendo que Jackson solo puede serializar por valor y no por referencia.

He buscado infructuosamente una solución recomendada.

Se agradece toda la ayuda.

actual Jackson Lib 1.8.3

Respuesta

5

Actualmente (1.9) que tendría que escribir serializador personalizado, deserializer, para manejar esto. No hay soporte listo para usar para manejar la identidad del objeto.

De frameworks Java, el único que conozco que admite identidades de objeto es XStream.

Por lo que vale la pena, hay un antiguo feature request para que Jackson agregue soporte. Y hay posibilidades razonables de que esto funcione en 2.0. Pero incluso si lo fuera, tomará un tiempo (un mes o dos).

UPDATE (abril de 2013): De acuerdo con la otra respuesta aceptada, esta función - @JsonIdentityInfo - de hecho se incluyó en Jackson 2.0, y está disponible. No hay necesidad de serializadores personalizados.

+0

Gracias por la respuesta, lo hice ver la solicitud de función, pero rezaba que era muy antigua :(. Creo que he encontrado una solución, le daré a mi objeto compartido una referencia y un enlace a la referencia cuando me desirialize. Gracias de nuevo, muy apreciado. – HKalsi

+0

Sí, viejo, porque se implementó para 2.0, y ha estado disponible desde entonces. Actualizaré mi respuesta. – StaxMan

Cuestiones relacionadas