Deserlizar y Serializar Listas de objetos con JSONDeserializer (flexJson)


 DESERIALIZAR LISTAS:

Imaginemos que nuestro objeto se llama Persona y que queremos deserializar una lista de objetos (que vendra en formato JSON en la variable input:

Nos llega esta lista de objetos en formato JSON:
String input =
 "[{
    "name": "Antonio",
    "description": "El hijo de la Paqui"
},
{
    "name": "Pedro",
    "description": "El hijo de Angelita, la del pueblo."
},
{
    "name": "Luis",
    "description": "Si hombre, el que vive cerca de la ria."
},
{
    "name": "McBrain",
    "description": "EL bateria de los Maiden"
}]";

1.Primero preparar el desarializador:
JSONDeserializer<List<Persona >> deserializer = new JSONDeserializer<List<Persona >>().use("values", Persona .class);

*Nota: el "values" es un literal estandar de Flex Json que indica que debe usar para deserializar cada objeto de la lista.

2.Ahora le pasamos el "raw" (la cadena JSON) al deserializador y recogemos la List:

List<Persona > tagList = deserializer.deserialize(input);


Y con esto ya tienes tu lista.



SERIALIZAR LISTAS:

0.Tienes tu lista de objetos asi:

List<Persona> personas = .....

1.Prepara el Serializador:

JSONSerializer serializer = new JSONSerializer();

2.Recogemos el resultado en formato JSON

String jsonRepresentation = serializer.deepSerialize(personas);



*Nota: El metodo deepSerializer recorre los objetos hijos que tenga Persona dentro y tambien los mete en el json. Si queremos solo deserializar la clase padre (Persona) usaremos el metodo serialize(persona)




Comentarios

Entradas populares de este blog

Subir campos Blob a BBDD (Oracle) con Java

Reiniciar usuario de SVN Subversion

Cucumber y Java - definiendo test de una manera amigable