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 { También en la biblioteca
Tower para Rust: guía completa con ejemplos
Quartz Scheduler Java: guía completa con ejemplos prácticos
Generación de PDF en Go (Golang): bibliotecas y ejemplos
Generación de informes PDF en JavaScript (Node.js): Resumen de bibliotecas y ejemplos de código