Jackson es una herramienta que permite, entre otras cosas, transformar objetos Java a objetos JSON y viceversa. Vamos a crear un proyecto para mostrar cómo funciona esta tecnología.
Creación del proyecto
Creamos un proyecto Maven.
Importación de las librerías de Jackson
Tenemos que modificar el fichero pom.xml y añadir las siguientes dependencias:
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.9.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.3</version> </dependency>
Objeto mapeador
Jackson nos proporciona un objeto mapeador que usaremos para hacer las transformaciones, el ObjectMapper.
ObjectMapper mapper = new ObjectMapper();
Java Bean de ejemplo
package app; public class MyObject { private String myString; private int myInt; public MyObject() { super(); } public MyObject(String myString, int myInt) { super(); this.myString = myString; this.myInt = myInt; } public String getMyString() { return myString; } public void setMyString(String myString) { this.myString = myString; } public int getMyInt() { return myInt; } public void setMyInt(int myInt) { this.myInt = myInt; } @Override public String toString() { return "MyObject [myString=" + myString + ", myInt=" + myInt + "]"; } }
Vamos a usar un objeto JSON que transformaremos en un objeto Java. Este último objeto Java lo volveremos a transformar en objeto JSON.
Transformación de JSON a Java
En nuestro caso vamos a usar una cadena de texto en formato JSON. Para transformarla a objeto Java es muy sencillo:
String jsonInputString = "{\"myString\":\"abc\", \"myInt\":123}"; MyObject myObject = mapper.readValue(jsonInputString, MyObject.class);
Transformación de Java a JSON
Es también muy directo:
String jsonOutputString = mapper.writeValueAsString(myObject);
El código de este proyecto se encuentra situado en https://github.com/luisgomezcaballero/jackson-json.
So, what do you think ?