Antes de comenzar me gustaría darles la defición de JSON: Es un formato de intercambio de información que está basado en estructuras de pares clave-valor.
Puede darse la situación de que en nuestra aplicación Android, necesitemos atender peticiones representadas en JSON, transformarlas a Java, tratar los datos y devolver una respuesta en JSON. Los WebServices REST son un buen ejemplo de esto.
Para resolver este problema podemos implementar de forma manual la lógica de negocio para serializar y deserializar nuestro JSON, lo que supodrá un esfuerzo considerable. O bien podríamos hacer uso de alguna libería diseñada para este propósito como puede ser Gson.
En este artículo vamos a aprender a utilizar Gson para parsear JSON utilizando Android Studio como IDE.
Integrar Gson en Android Studio
Para comenzar necesitaremos modificar el archivo build.gradle agregando la siguiente dependencia en la sección dependencies:
compile 'com.google.code.gson:gson:2.7'
Tras escribir esta nueva línea en pantalla tendremos un mensaje que nos indicará que se ha cambiado algún archivo gradle, y que para que todo funcione bien tendremos que volver a sincronizar. Para hacerlo no tenemos más que darle a “Sync Now” en la parte derecha
Utilizar Gson
Una vez tenemos nuestra librería descargada, sólo nos queda utilizarla y parsear nuestros documentos JSON, o nuestros objetos Java.
Ya en la Activity del proyecto, este documento lo almacenaremos en un objeto de tipo String para poder parsearlo posteriormente:
private
final
static
String jsonDocument =
"{"
+
" \"title\": \"Uploads from everyone\","
+
" \"description\": \"Description from everyone is........\""
+
"}"
;
public
class
Post{
private
String title;
private
String description;
public
String getTitle() {
return
title;
}
public
void
setTitle(String title) {
this
.title = title;
}
public
String getDescription() {
return
description;
}
public
void
setDescription(String description) {
this
.description = description;
}
}
Deserializar el documento JSON
Y con esto, por fin, tendríamos ya creada la clase que necesitamos para poder almacenar la información del JSON en un objeto que podamos utilizar nosotros mismos. El siguiente paso sería, de nuevo en nuestra Activity, declarar un objeto Gson, y posteriormente declarar otro objeto de tipo Post en la que almacenaremos la información del JSON:
@Override
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Se añade disableHtmlEscaping() para evitar parseo de símbolos html. Gson gson = new GsonBuilder().disableHtmlEscaping().create(); Post post = gson.fromJson(jsonDocument, Post.class); Log.d("Test",post.getTitle());}
Gson gson =
new
Gson();
String json = gson.toJson(post);
Espero que les sea de mucha utilidad el artículo, cualquier consulta haganmela en la caja de comentarios!