¿Qué es ObjectMapper y cómo usarlo para manejar datos JSON?

Contenido del Bootcamp Dirigido por: | Última modificación: 8 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

vParte del trabajo en Java es aprender a manipular datos en formato JSON. Para esto una de las herramientas más utilizadas es ObjectMapper, esta forma parte de la librería Jackson. En el artículo de hoy queremos contarte todo sobre esta herramienta y cómo puedes hacer uso de ella para manipular datos JSON.

ObjectMapper

¿Qué es ObjectMapper?

ObjectMapper es una clase del framework Jackson que permite convertir objetos Java a JSON y viceversa. Es bastante común en aplicaciones basadas en Spring Boot. Con Object Mapper puedes serializar un objeto Java a un formato JSON fácilmente, o deserializar un archivo o cadena JSON para obtener un objeto Java.

Jackson y su Object Mapper es una solución estándar en el ecosistema de Java para la manipulación de datos JSON, haciéndola confiable y eficiente.

ObjectMapper es perfecto para cuando necesites manejar datos JSON en Java, sin importar el contexto. Ya sea que estés construyendo una API RESTful que envía y recibe datos en formato JSON, o integrando tu aplicación con servicios externos que también usan JSON para compartir información, Object Mapper te facilita la tarea. Además, si trabajas con Spring Boot, lo más probable es que ya estés usando Jackson ObjectMapper, ya que es la herramienta predeterminada para gestionar JSON en ese framework.

Para entender de qué trata el manejo de esta herramienta, supón que tienes una clase Persona en Java con los atributos nombre, apellidos y edad. Lo que deseas es convertir esta clase a formato JSON para guardarla en un archivo o enviarla en una respuesta HTTP, y luego recuperar esos datos como un objeto Java.

Veamos cómo hacerlo con Object Mapper:

import com.fasterxml.jackson.databind.ObjectMapper;

public class Principal {
public static void main(String[] args) {
ObjectMapper mapeador = new ObjectMapper();
Persona persona = new Persona("Ana", "López", 30);

try {
// Convertir el objeto Persona a JSON y guardarlo en un archivo
mapeador.writeValue(new File("persona.json"), persona);
} catch (IOException e) {
e.printStackTrace();
}
}
}

Para este caso hemos creado una instancia de ObjectMapper y la hemos utilizado para escribir el objeto persona en un archivo JSON. El resultado en el archivo sería algo como esto:

{
  "nombre": "Ana",
  "apellidos": "López",
  "edad": 30
}

Leer un JSON con ObjectMapper

Ahora bien, la tarea opuesta a la escritura es leer un archivo JSON y convertirlo de vuelta en un objeto Java. Veamos cómo hacerlo por medio de un ejemplo:

public class Principal {
public static void main(String[] args) {
ObjectMapper mapeador = new ObjectMapper();

try {
// Leer el archivo JSON y convertirlo en un objeto Persona
Persona persona = mapeador.readValue(new File("persona.json"), Persona.class);
System.out.println(persona.getNombre());
} catch (IOException e) {
e.printStackTrace();
}
}
}

Para este ejemplo Object Mapper toma el archivo JSON persona.json y lo convierte en un objeto Persona. Esto es extremadamente útil cuando se trabaja con APIs o archivos que utilizan JSON como formato de datos.

Otros usos de ObjectMapper

Además de convertir objetos Java a JSON y viceversa, ObjectMapper tiene otras funcionalidades muy útiles:

  1. Manejo de listas y mapas: Puedes utilizar Object Mapper para convertir JSON en listas y mapas de objetos, lo que es muy útil cuando trabajas con colecciones de datos.
List<Persona> personas = mapeador.readValue(jsonString, new TypeReference<List<Persona>>() {});
  1. Customización: Puedes usar ObjectMapper para crear serializadores y deserializadores personalizados cuando el formato del JSON no coincide exactamente con la estructura de tus clases Java.
SimpleModule module = new SimpleModule();
module.addSerializer(Persona.class, new CustomPersonaSerializer());
mapeador.registerModule(module);
  1. Manipulación de nodos JSON: Puedes leer un JSON como un árbol de nodos utilizando la clase JsonNode de Jackson. Esto es útil cuando no conoces de antemano la estructura exacta del JSON.
JsonNode rootNode = mapeador.readTree(jsonString);
String nombre = rootNode.get("nombre").asText();

Si deseas aprender más sobre programación, no dudes en inscribirte en cualquiera de nuestros bootcamps. El día de hoy queremos recomendarte especialmente nuestro curso de Java, en donde aprenderás todo lo que necesitas saber sobre este popular lenguaje de programación y cómo usarlo para conseguir tu primer empleo en el mundo tecnológico. ¡No pierdas tu oportunidad, escríbenos ahora!

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