Transforma tu manejo de JSON con Jackson en Java

| Última modificación: 18 de septiembre de 2024 | Tiempo de Lectura: 4 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Probablemente ya te hayas dado cuenta de que, cuando trabajas con aplicaciones modernas en Java, es casi imposible no hacer uso de los archivos JSON y, gestionarlos de forma manual, muchas veces resulta complicado y lleva demasiado tiempo. De ahí que, Jackson en Java surja como una solución para simplificar estas operaciones porque con ella puedes leer, escribir y manipular todo lo que esté en formato JSON. Aquí descubrirás más sobre Jackson Java y cómo usarlo para transformar tu manejo de JSON.

qué es Jackson en Java

¿Qué es Jackson en Java?

Jackson en Java será tu gran aliada cada vez que tengas que trabajar con datos en formato JSON. Con esta biblioteca puedes transformar un objeto Java en un archivo JSON o viceversa, sin complicarte demasiado. Además, la popularidad de Jackson lo ha llevado a ser usado en Spring Framework para manejar datos JSON, de modo que es prácticamente un estándar en el mundo Java.

¿Cómo trabajar con Jackson en Java?

Configuración del proyecto

Trabajar con Java Jackson es muy sencillo. Primero debes agregar la dependencia a tu proyecto Maven. Lo puedes configurar en tu archivo pom.xml de esta manera:

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.1</version>
</dependency>

En el momento en que tengas lista esta dependencia podrás empezar a usar Jackson en tu proyecto.

¿Cómo leer JSON con Jackson en Java?

Haremos un ejercicio muy sencillo: leer un archivo JSON y convertirlo en un objeto Java. Vas a suponer que tienes un archivo llamado productos.json con este contenido:

{
"id": 101,
"nombre": "Laptop",
"precio": 1200.99,
"disponible": true
}

Paso 1: Crea la clase Java

Lo primero que harás será crear una clase Producto que represente los datos del archivo JSON:

public class Producto {
private int id;
private String nombre;
private double precio;
private boolean disponible;

// Constructores, getters y setters
public Producto() {}

public Producto(int id, String nombre, double precio, boolean disponible) {
this.id = id;
this.nombre = nombre;
this.precio = precio;
this.disponible = disponible;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public double getPrecio() {
return precio;
}

public void setPrecio(double precio) {
this.precio = precio;
}

public boolean isDisponible() {
return disponible;
}

public void setDisponible(boolean disponible) {
this.disponible = disponible;
}
}

Paso 2: Lee el archivo JSON

En este segundo paso debes usar Jackson en Java para leer el archivo productos.json y así convertirlo en un objeto Producto:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;

public class LectorJSON {

public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
Producto producto = mapper.readValue(new File("productos.json"), Producto.class);
System.out.println("ID: " + producto.getId());
System.out.println("Nombre: " + producto.getNombre());
System.out.println("Precio: " + producto.getPrecio());
System.out.println("Disponible: " + producto.isDisponible());
} catch (IOException e) {
e.printStackTrace();
}
}
}

Si eres buen observador, te darás cuenta de que, el ObjectMapper de Jackson es el que lee el archivo JSON y lo convierte de forma automática en un objeto Producto. Luego, simplemente imprime los detalles del producto en consola para que se vea así:

ID: 101
Nombre: Laptop
Precio: 1200.99
Disponible: true

¿Cómo escribir JSON con Jackson en Java?

Como te comenté, también es posible escribir un objeto Java en formato JSON usando Jackson. Puedes ver cómo lograrlo con estos pasos:

Paso 1: Crea el objeto Java

Para este ejemplo hemos creado un nuevo objeto Producto directamente en el código:

Producto nuevoProducto = new Producto(102, "Smartphone", 799.99, true);

Paso 2: Convierte el objeto en JSON

Aquí es donde usas Jackson para escribir este objeto como un archivo JSON:

import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;
import java.io.IOException;

public class EscritorJSON {

public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
Producto nuevoProducto = new Producto(102, "Smartphone", 799.99, true);

try {
mapper.writeValue(new File("nuevo_producto.json"), nuevoProducto);
} catch (IOException e) {
e.printStackTrace();
}
}
}

Podrás ver que se genera un archivo nuevo_producto.json con el siguiente contenido:

{
"id": 102,
"nombre": "Smartphone",
"precio": 799.99,
"disponible": true
}

Serialización y deserialización con Jackson en Java

Cuando tengas que transferir datos entre aplicaciones o almacenar información en archivos, podrás hacer uso de la serialización y deserialización con Jackson en Java. Recuerda que, la serialización convierte objetos Java a JSON y la deserialización convierte archivos JSON a Java.

  • Como vimos en el ejemplo anterior, la serialización convierte un objeto Java a JSON usando el método writeValue().
  • Por otro lado, la deserialización convierte un archivo JSON en un objeto Java usando el método readValue(), como se mostró en el primer ejemplo.

Ya te queda claro las ventajas que representa el saber usar Jackson en Java. Al ser fácil de usar, brindar flexibilidad y tener un alto rendimiento, es una biblioteca bastante apetecida para trabajar con ese formato de datos.

Como nos gusta que aprendas y te capacites constantemente, hemos creado un maravilloso y completo Bootcamp Java Full Stack de KeepCoding. Aquí te formarás de la mano de los mejores profesores en la industria y te enseñaremos todo lo que debes saber para convertirte en un experto en Java. Ten por seguro que se te abrirán muchas puertas y podrás entrar a un sector que requiere de muchos profesionales, brinda sueldos competitivos y estabilidad laboral. ¡No pierdas la oportunidad de transformar tu carrera en el sector IT!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Java y Spring Boot

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado