Trabajando con JSON en Android (GSON)

Trabajando con JSON en Android (GSON)
gson

Hace muy poco os enseñaba a utilizar JSON en Android para deserializarlo y utilizarlo con nuestras propias clases en Java. Entonces os adelanté que mostraría otra manera de trabajar con JSON en Android. Esta forma es la que, en los círculos de producción, se acostumbra a utilizar. Ahora veremos la razón.

¿Qué es Gson?

Este nuevo método para trabajar con JSON pasa por utilizar una librería llamada Gson (también conocida como Google JSON) puesto que es obra de los chicos de la gran G. Básicamente nos facilita el serializado y deserializado de "Objetos arbitrariamente complejos" (como lo define la Wikipedia).

¿Cómo lo utilizamos?

Igual que en otros casos, cuando trabajamos con librerías externas dispuestas en Maven Central, simplemente deberemos añadir una línea en el archivo .gradle para incluirlo en nuestro proyecto. compile 'com.google.code.gson:gson:2.3.1'

Ejemplo

Tomaremos el mismo ejemplo del pasado post, para ver una comparación más directa. Frutas:

  • Manzana – 10 unidades
  • Pera – 20 unidades
  • Naranja – 30 unidades

Esto se traduciría en JSON de la siguiente manera: { "frutas": [ { "nombre_fruta":"Manzana" , "cantidad":10 }, { "nombre_fruta":"Pera" , "cantidad":20 }, { "nombre_fruta":"Naranja" , "cantidad":30 } ] }

Manos a la obra

Prepararemos la clase Fruta para trabajar posteriormente con nuestros objetos Java: public class Fruta { public String nombre; public int unidades; public Fruta (String nombre, int unidades){ this(nombre, unidades); } // Aquí los métodos get } Ya lo tenemos todo listo, solo falta pasar de la cadena JSON a nuestro objeto Fruta: String json = CADENA_JSON; Gson gson = new Gson(); List<Fruta> frutas = gson.fromJson(CADENA_JSON, Fruta.class);

Conclusión

Cómo podéis ver, es mucho más cómodo y fácil trabajar de esta manera que "haciéndolo manualmente". Puede que con este ejemplo sencillo no aprecie todo el ahorro y claridad de código utilizando esta librería, pero os doy mi palabra que conforme empieza a crecer y complicarse el JSON, comienza a ser tedioso trabajar de "manera manual". ¿Qué os ha parecido este método? ¿Cuál preferís?