Gson es un parser que nos permite leer cadenas obtenidas de archivos Json hecho para Java que fue realizado por Google. A diferencia de otros parsers detecta la estructura del .json y nos permite asignarle estos valores aun Objeto definido por nosotros si las estructuras coinciden, en otras palabras nos permiten parsear objetos json a objetos java.
Se puede descargar la librería Gson de code.google.com o directamente de este link <-click.
En este caso se usará la clase Hijo para definir la estructura que tendrá el json. Hijo es un pojo sencillo como se ve a continuación:
El siguiente código muestra como leer una cadena json haciendo uso de la librería gson y sus métodos, para instanciar un objeto Hijo con sus datos según el json:
Este código da como resultado lo siguiente:
45
Pepe
Por otro lado si se desea escribir una cadena json en base a un objeto, en este caso Hijo, simplemente se debe utilizar el siguiente código:
El código anterior da como resultado la siguiente salida en consola:
{
"nombre":"Juan",
"apellido":"Carabela",
"edad":46,
"hijo":{
"nombre":"Rambo",
"apellido":"Carabela",
"edad":21
}
}
Suscribirse a:
Enviar comentarios
(
Atom
)
Hola me gustaria saber como leer el ultimo ejemplo, gracias.
ResponderEliminarSe te refieres al json despleagado al final, basta con tomar ese String y crear un nuevo hijo:
EliminarHijo hijo = gson.fromJson(json, Hijo.class);
Toma en cuenta que para incluir en un String las comillas (") en java debes agregarle un slash invertido de la siguienter forma \".
Saludos.
hola, como se convertiria a objetos esto:
ResponderEliminar[{"estadoacademicoSimple":[{"legajo":"1231","estadoAcademico":"regular","carreraSimple":{"nombre":"sistemas"},"fechaIngreso":"Mar 30, 2008 12:00:00 AM","fechaBaja":"Nov 30, 2013 12:00:00 AM"},{"legajo":"1233","estadoAcademico":"libre","carreraSimple":{"nombre":"quimica"},"fechaIngreso":"Jul 30, 2008 12:00:00 AM","fechaBaja":"Nov 30, 2013 12:00:00 AM"}]}]
Tengo entendido que al ser una lista de estados academicos debo definir un tipo con type, y ademas un array de los estados.
Saludos y gracias
Hola, al ser un array que puede ser de cualquier tipo tienes que definir un tipo como te muestro a continuación.
EliminarType type = new TypeToken>(){}.getType();
El objeto quedaría como:
class EstadosAcademicos{
List estadoacademicoSimple;
}
class EstadoAcademicoSimple{
String legajo;
String estadoAcademico;
CarreraSimple carreraSimple;
Date fechaIngreso;
Date fechaBaja;
}
class CarreraSimple{
String nombre;
}
No es exactamente esa pero debería darte una idea.
Saludos.