Analizando JSON en Java: De Cero a Código Funcional
\n\n¿Alguna vez has mirado una respuesta JSON de una API y has sentido un leve pánico? "¿Cómo extraigo name de aquí? ¿Y qué hago con este objeto anidado?" — preguntas familiares, ¿verdad? No te preocupes, no estás solo. El tema "Cómo analizar JSON en Java" es una de las consultas más populares en Stack Overflow, y hoy resolveremos esta cuestión de una vez por todas.
JSON (Notación de Objetos JavaScript) es un formato estándar de intercambio de datos. Casi todos los servicios modernos — desde el clima hasta las cotizaciones de acciones — devuelven datos en JSON. Ser capaz de analizarlo competentemente es una habilidad básica para un desarrollador Java. No leeremos especificaciones aburridas. En su lugar, tomaremos tres de las bibliotecas más populares: Gson (Google), Jackson (FasterXML) y la clásica org.json. Verás la diferencia en los enfoques y podrás elegir tu herramienta.
\n\n¿Qué obtendrás después de leer? Podrás analizar cualquier JSON — desde una cadena simple hasta una estructura anidada compleja con arrays. ¡Vamos allá!
\n\nPreparación: Lo Que Necesitaremos
\n\nPara los ejemplos, utilizaremos un proyecto Maven simple. Si no usas Maven — no hay problema, solo descarga los archivos JAR de las bibliotecas manualmente. Aquí están las dependencias mínimas para pom.xml:
<!-- Gson -->\n<dependency>\n <groupId>com.google.code.gson</groupId>\n <artifactId>gson</artifactId>\n <version>2.10.1</version>\n</dependency>\n\n<!-- Jackson -->\n<dependency>\n <groupId>com.fasterxml.jackson.core</groupId>\n <artifactId>jackson-databind</artifactId>\n <version>2.15.2</version>\n</dependency>\n\n<!-- org.json (simple) -->\n<dependency>\n <groupId>org.json</groupId>\n <artifactId>json</artifactId>\n <version>20231013</version>\n</dependency>\n\n\nAhora, imaginemos que recibimos el siguiente JSON del servidor (información de usuario):
\n\n{\n "id": 42,\n "name": "Alice",\n "email": "alice@example.com",\n "isActive": true,\n "address": {\n "city": "Moscow",\n "street": "Tverskaya"\n },\n "hobbies": ["reading", "programming", "cycling"]\n}\n\n\nNuestra tarea es convertir esta cadena en objetos Java y extraer los campos necesarios. Vamos en orden.
\n\nMétodo 1: Analizando JSON en Java con Gson (Simple y Elegante)
\n\nGson de Google es quizás la forma más simple de analizar JSON en Java. Su principal ventaja es el minimalismo. No necesitas escribir mucho código.
\n\nPaso 1. Crea una clase Java (POJO) que coincida con la estructura JSON.
\n\npublic class User {\n private int id;\n private String name;\n private String email;\n private boolean isActive;\n private Address address;\n private List<String> hobbies;\n\n // Getters y setters (¡obligatorios para Gson!)\n public int getId() { return id; }\n public void setId(int id) { this.id = id; }\n\n public String getName() { return name; }\n public void setName(String name) { this.name = name; }\n\n // ... getters/setters restantes de manera similar\n}\n\npublic class Address {\n private String city;\n private String street;\n // getters/setters\n}\n\n\nPaso 2. Analiza JSON con una sola línea de código.
\n\nimport com.google.gson.Gson;\n\npublic class GsonExample {\n public static void main(String[] args) {\n String json = "{\\"id\\":42,\\"name\\":\\"Alice\\",\\"email\\":\\"alice@example.com\\",\\"isActive\\":true,\\"address\\":{\\"city\\":\\"Moscow\\",\\"street\\":\\"Tverskaya\\"},\\"hobbies\\":[\\"reading\\",\\"programming\\",\\"cycling\\"]}";\n\n Gson gson = new Gson();\n User user = gson.fromJson(json, User.class);\n\n System.out.print