Puede darse la situación de que en nuestra aplicación Java, necesitemos atender peticiones representadas en JSON, transformarlas a objetos, tratar los datos y devolver una respuesta en JSON. Los servicios REST o los Websockets son un buen ejemplo de esto.
Para resolver este problema podemos implementar “a mano” la lógica de negocio para serializar y deserializar nuestro JSON, lo que supodrá un esfuerzo considerable. O podríamos hacer uso de alguna libería diseñada para este propósito como puede ser Gson.
Gson es una biblioteca de código abierto para el lenguaje de programación Java que permite la serialización y deserialización entre objetos Java y su representación en notación JSON.
Lo primero es añadir al pom.xml la dependencia Gson, que la podemos encontrar en Maven Repository.
**<dependency>
<groupId>**com.google.code.gson**</groupId>
<artifactId>**gson**</artifactId>
<version>**2.8.6**</version>
</dependency>**
Ya podríamos empezar a usar dicha librería. Voy a mostrar lo que fue mi uso de la librería desarrollando una clase que convertía tanto desde JSON como hacia JSON, en el que el punto fuerte era éste último método, en el que le tuve que especificar por parámetro sobre que tipo de objeto se iba a realizar la conversión de un JSON a un objeto específico para lograr que la conversión fuese exitosa. En el otro método, simplemente le paso el objeto que quiero convertir a JSON.
public class JsonUtils {
public static String convertToJson(Object object) {
Gson gson = new Gson();
return gson.toJson(object);
}
public static Object convertFromJson(String json,Object object){
Gson gson = new Gson();
return gson.fromJson(json, object.getClass());
}
}