Ya hemos visto lo sencillo que es manejar la librería JSON-Simple a la hora de crear un objeto JSON. Ahora vamos a ver cómo podemos convertir un objeto a JSON con JSON-Simple.
Esto nos va a ser útil en situaciones en las cuales tengamos que enviar este JSON por ejemplo a otro servicio, lo normal será a un REST, de tal manera que trabajemos con objetos y sus correspondientes métodos la lógica de negocio de nuestra aplicación, vayamos manipulando los datos que necesitemos y lo convirtamos a JSON solamente en el momento de invocar a los servicios REST que necesiten del formato JSON.
Lo primero que haremos será incluir la librería JSON-Simple mantenida por Clifton Labs dentro de nuestras dependencias Maven. Para ello lo que vamos es a modificar nuestro fichero pom.xml con el siguiente contenido.
<dependency> <groupId>com.github.cliftonlabs</groupId> <artifactId>json-simple</artifactId> <version>3.1.0</version> </dependency>
Y al principio del programa importaremos la librería. En este caso, en concreto será la clase Jsoner
.
import com.github.cliftonlabs.json_simple.Jsoner;
Como lo que vamos a hacer es convertir un objeto a JSON con JSON-Simple lo primero que necesitaremos será tener un objeto. Para ello nos definimos una sencilla clase persona que contenga un nombre y una edad.
public class Persona { String nombre; int edad; public Persona(){} public Persona(String nombre,int edad){ this.nombre = nombre; this.edad = edad; } public int getEdad() { return edad; } public void setEdad(int edad) { this.edad = edad; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } }
E instanciaremos un objeto de esta clase:
Persona persona = new Persona("Mari Cielo",22);
Ahora vamos a utilizar la clase Jsoner
de JSON-Simple. Esta clase tiene un método estático, que no necesita instanciación de la clase, que nos permite convertir un objeto a JSON. El método en concreto es .serialize()
. Este método recibe como parámetro el objeto que acabamos de crear.
Jsoner.serialize(persona);
Lo que nos devuelve es una cadena, la cual podemos simplemente mostrar por pantalla.
System.out.println(Jsoner.serialize(alumno));
De esta forma tan sencilla hemos conseguido el convertir un objeto a JSON con JSON-Simple de una forma sencilla y mediante una única sentencia dentro de nuestro código fuente.
¿Qué más cosas se te ocurre hacer con un objeto JSON para probar la librería JSON-Simple?