google-gson es una pequeña librería java que nos permite convertir una clase java en un String con formato JSON y viceversa. Es útil si hacemos una aplicación web con java en el lado del servidor y usamos el formato JSON para enviar y recibir datos al navegador.
Un pequeño ejemplo, hagamos un par de clases java sencillitas, dos bean sin necesidad de métodos set y get, pero con un constructor sin parámetros. Una de ellas tiene como atributo, entre otros, a la otra clase.
class Dato {
private double numero;
private int array[];
private String texto;
private LinkedList<Boolean> lista;
private DatoInterno dato;public String toString() {
return texto + " " + numero + " " + Arrays.toString(array) + " "
+ Arrays.toString(lista.toArray()) + " " + dato;
}
}class DatoInterno {
private float valor;public String toString() {
return "" + valor;
}
}
Le hemos puesto unos métodos toString() para ver por pantalla fácilmente su contenido
Una vez instalada la librería en nuestro proyecto (es un solo jar), podemos hacer un código como este
Gson gson = new Gson();
Dato dato = gson.fromJson("{numero:1.4,texto:dos,array:[1,2,3,4],lista:[true,false],dato:{valor:11.22}}",
Dato.class);
System.out.println(dato.toString());
que da de resultado algo como esto
dos 1.4 [1, 2, 3, 4] [true, false] 11.22
es decir, la salida de nuestro System.out.println() en el que hemos obtenido una clase dato rellena con los datos del texto json. Por otro lado, también tenemos la posibilidad inversa. Si una vez relleno el dato llamamos a
System.out.println(gson.toJson(dato));
obtendremos la siguiente salida
{"numero":1.4,"array":[1,2,3,4],"texto":"dos","lista":[true,false],"dato":{"valor":11.22}}
es decir, el texto JSON correspondiente a lo que tenemos dentro del dato, pero perfectamente formateado y no la "guarrería" que había puesto yo inicialmente en el código.
En fin, sencilla de usar y bastante potente.
Pingback: Resumen semanal de temas de Java « Jbravomontero's Blog