:::: MENU ::::

Jackson JSON


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 ?