Procesamiento JSON en Java: bibliotecas Jackson y Gson para trabajar con datos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Procesamiento de JSON en Java: bibliotecas Jackson y Gson



JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos, ampliamente utilizado en desarrollo web, API y microservicios. En Java, existen varias bibliotecas potentes para trabajar con JSON, entre las cuales las más populares son Jackson y Gson. En este artículo, analizaremos en detalle ambas bibliotecas, sus capacidades, ejemplos de uso y características.



1. Biblioteca Jackson



Jackson es una biblioteca de alto rendimiento para el procesamiento de JSON en Java, desarrollada por FasterXML. Proporciona un conjunto completo de herramientas para serialización, deserialización, análisis y transformación de datos. Jackson es el estándar de facto en el ecosistema Spring.



Principales capacidades de Jackson:

  • ObjectMapper — la clase principal para convertir objetos Java a JSON y viceversa.
  • Anotaciones — configuración flexible de la serialización mediante anotaciones (@JsonProperty, @JsonIgnore, @JsonFormat).
  • Soporte de Stream API — lectura y escritura de flujos JSON.
  • Serialización personalizable — posibilidad de crear serializadores y deserializadores propios.


Ejemplo de uso de Jackson:

import com.fasterxml.jackson.databind.ObjectMapper;import com.fasterxml.jackson.databind.SerializationFeature;

public class JacksonExample { public static void main(String[] args) throws Exception { // Creamos un objeto para el mapeo ObjectMapper mapper = new ObjectMapper(); mapper.enable(SerializationFeature.INDENT_OUTPUT);

// Ejemplo de clase Person person = new Person("Iván", 30, "ivan@example.com");

// Serialización a JSON String jsonString = mapper.writeValueAsString(person); System.out.println("JSON: " + jsonString);

// Deserialización desde JSON String jsonInput = "{\\"name\\":\\"María\\",\\"age\\":25,\\"email\\":\\"maria@example.com\\"}"; Person deserializedPerson = mapper.readValue(jsonInput, Person.class); System.out.println("Objeto: " + deserializedPerson.getName()); }}

class Person { private String name; private int age; private String email;

public Person() {} // constructor obligatorio

public Person(String name, int age, String email) { this.name = name; this.age = age; this.email = email; }

// getters y setters public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; }}


Inclusión de Jackson (Maven):

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


2. Biblioteca Gson



Gson es una biblioteca de Google para la serialización y deserialización de objetos Java a JSON y viceversa. Se caracteriza por su facilidad de uso y ligereza. Gson se elige a menudo para proyectos pequeños y desarrollo móvil en Android.



Principales capacidades de Gson:

  • GsonBuilder — configuración del comportamiento de serialización.
  • Anotaciones — soporte de @SerializedName para renombrar campos.
  • Soporte de arrays JSON — trabajo con colecciones.
  • Manejo de null — opción para incluir/excluir valores null.


Ejemplo de uso de Gson:

import com.google.gson.Gson;import com.google.gson.GsonB                    

Recommendations