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
@SerializedNamepara 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 También en la biblioteca
league/csv para PHP: guía completa con ejemplos
Pruebas en C++: visión general de frameworks y herramientas (Google Test, Catch2, doctest)
Cliente HTTP para Go (Golang): mejores bibliotecas para trabajar con HTTP
Trabajo con YAML en TypeScript: análisis, generación y validación de datos