Gson para Java: guía completa con ejemplos

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

¿Qué es Gson y para qué sirve?

\n\n

Gson es una potente biblioteca para el lenguaje Java, desarrollada por la empresa Google, que permite convertir objetos Java en su representación JSON (serialización) y, viceversa, restaurar objetos Java a partir de cadenas JSON (deserialización). JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos, ampliamente utilizado en APIs web, archivos de configuración y para almacenar datos estructurados.

\n\n

¿Para qué usar Gson? En el desarrollo moderno de aplicaciones Java, prácticamente ningún proyecto prescinde del trabajo con JSON. Ya sea para comunicarse con una API REST, leer configuraciones o intercambiar datos entre microservicios, Gson proporciona una forma simple, rápida y confiable de conversión. A diferencia de la biblioteca estándar de Java (org.json), Gson puede trabajar directamente con objetos Java arbitrarios (POJO), mapeando automáticamente los campos de la clase con las claves JSON. Esto libera al desarrollador del análisis manual y de escribir código repetitivo.

\n\n

Instalación de Gson

\n\n

Gson es una biblioteca de Java, por lo que se distribuye a través de sistemas de gestión de dependencias para la JVM. A continuación se muestran las formas de instalación para las herramientas de compilación más populares.

\n\n

Maven

\n

Añada la siguiente dependencia en su archivo pom.xml:

\n
<dependency>\n    <groupId>com.google.code.gson</groupId>\n    <artifactId>gson</artifactId>\n    <version>2.10.1</version> <!-- Verifique la versión actual en Maven Central -->\n</dependency>
\n\n

Gradle

\n

Añada en el archivo build.gradle:

\n
implementation 'com.google.code.gson:gson:2.10.1'
\n\n

Descarga directa del JAR

\n

Si no utiliza sistemas de compilación, descargue el archivo JAR desde Maven Central y agréguelo al classpath de su proyecto.

\n\n

Importante: A diferencia de Python (pip) o Node.js (npm), en Java no existe un único gestor de paquetes. Maven y Gradle son el estándar de facto.

\n\n

Inicio rápido: primer ejemplo

\n\n

Vamos a crear una clase simple Person y serializarla a JSON, y luego deserializarla de vuelta.

\n\n
import com.google.gson.Gson;\n\npublic class QuickStart {\n    public static void main(String[] args) {\n        // 1. Creamos un objeto\n        Person person = new Person("Iván", 30, "ivan@example.com");\n\n        // 2. Creamos una instancia de Gson\n        Gson gson = new Gson();\n\n        // 3. Serialización (Java -> JSON)\n        String json = gson.toJson(person);\n        System.out.println("JSON: " + json);\n        // Salida: JSON: {"name":"Iván","age":30,"email":"ivan@example.com"}\n\n        // 4. Deserialización (JSON -> Java)\n        String jsonInput = "{\\"name\\":\\"María\\",\\"age\\":25,\\"email\\":\\"maria@test.com\\"}";\n        Person personFromJson = gson.fromJson(jsonInput, Person.class);\n        System.out.println("Nombre: " + personFromJson.getName());\n        // Salida: Nombre: María\n    }\n}\n\nclass Person {\n    private String name;\n    private int age;\n    private String email;\n\n    // ¡Es obligatorio un constructor por defecto (sin argumentos) para la deserialización!\n    public Person() {}\n\n    public Person(String name, int age, String email) {\n        this.name = name;\n        this.age = age;\n        this.email = email;\n    }\n\n    public String getName() { return name; }\n    public int getAge() { return age; }\n    public String getEmail() { return email; }\n}
\n\n

Métodos y funciones principales de Gson

\n\n

A continuación se presentan los métodos clave de la biblioteca Gson. Cada método va acompañado de una descripción y un ejemplo funcional.

\n\n

1. Gson.toJson(Object src)

\n

Qué hace: Serializa el objeto Java proporcionado en una cadena JSON. Este es el método más básico para convertir un objeto a JSON.

\n

Recommendations