Procesamiento de JSON en Java: bibliotecas y herramientas para trabajar con JSON

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: revisión de bibliotecas y herramientas



JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos, ampliamente utilizado en aplicaciones web modernas, REST API, archivos de configuración y bases de datos. En Java existen varias bibliotecas potentes para trabajar con JSON, cada una con sus propias características, rendimiento y facilidad de uso. En este artículo revisaremos las principales herramientas, sus capacidades, ejemplos de código y mejores prácticas de aplicación.



1. Jackson (FasterXML Jackson)

Jackson es la biblioteca más popular y de mayor rendimiento para trabajar con JSON en Java. Soporta tanto el procesamiento por flujo (estilo SAX) como el modelo de objetos (estilo DOM). Jackson forma parte de Spring Boot y de muchas aplicaciones empresariales.



Capacidades principales:

  • Serialización/deserialización de objetos Java a JSON y viceversa
  • Procesamiento por flujo de archivos JSON grandes (JsonParser, JsonGenerator)
  • Soporte de anotaciones para ajuste fino (@JsonProperty, @JsonIgnore, @JsonFormat)
  • Trabajo con árbol de nodos (JsonNode)
  • Soporte de JSON Schema y validación


Ejemplo de código: uso básico de Jackson

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

public class JacksonExample { public static void main(String[] args) throws Exception { ObjectMapper mapper = new ObjectMapper();

// Serialización de objeto a JSON Person person = new Person("Iván", 30, "ivan@example.com"); String json = mapper.writeValueAsString(person); System.out.println(json); // {"name":"Iván","age":30,"email":"ivan@example.com"}

// Deserialización de JSON a objeto String jsonInput = "{\\"name\\":\\"María\\",\\"age\\":25}"; Person deserialized = mapper.readValue(jsonInput, Person.class); System.out.println(deserialized.getName()); // María

// Trabajo con árbol de nodos JsonNode root = mapper.readTree(jsonInput); System.out.println(root.get("age").asInt()); // 25 }}

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

// Constructores, getters, setters (obligatorios para la deserialización) public Person() {} public Person(String name, int age, String email) { this.name = name; this.age = age; this.email = email; } // getters y setters...}


2. Gson (Google Gson)

Gson es una biblioteca de Google, conocida por su simplicidad y ligereza. Es ideal para proyectos pequeños y medianos donde no se requiere el máximo rendimiento. Gson utiliza reflexión para la serialización/deserialización automática.



Características:

  • Configuración mínima: funciona "de fábrica"
  • Soporte de anotaciones (@Expose, @SerializedName)
  • Posibilidad de crear adaptadores personalizados (JsonSerializer, JsonDeserializer)
  • Trabajo con colecciones, arreglos y objetos anidados


Ejemplo de código: Gson en acción

import com.google.gson.Gson;import com.google.gson.GsonBuilder;

public class GsonExample { public static void main(String[] args) { Gson gson = new GsonBuilder() .setPrettyPrinting() // salida formateada .create();

// Creación de JSON a partir de un objeto Product product = new Product("Portátil", 899.99, true); String json = gson.toJson(product); System.out.println(json);

// Análisis de JSON a objeto String jsonInput = "{\\"name\\":\\"Ratón\\",\\"price\\":25.5,\\"available\\":false}"; Product parsed = gson.fromJson(jsonInput, Product.class); System.out.println(parsed.getName()); // Ratón }}

class Product {

Recommendations