Acerca de JSON a POJO
Pega un objeto JSON y obtén definiciones de record de Java al instante. Maneja objetos anidados, arrays y todos los tipos JSON.
Preguntas frecuentes
¿Qué es la generación de clases Java desde JSON?
La generación de clases Java desde JSON analiza una muestra de JSON y produce definiciones de clases Java con anotaciones Jackson @JsonProperty. Cada clave se convierte en un campo con getter y setter, listas para usar con ObjectMapper.readValue() para deserialización.
¿Debo usar anotaciones de Jackson o Gson en mi POJO generado?
Jackson es la biblioteca más utilizada y es la predeterminada en Spring Boot. Las clases generadas usan anotaciones @JsonProperty de Jackson. Para compatibilidad con Gson, reemplaza @JsonProperty por @SerializedName. Ambas bibliotecas gestionan objetos anidados y arrays de forma similar; elige según qué dependencia ya tengas en tu proyecto.
¿Cuándo debo usar Java records en lugar de una clase POJO?
Los Java records (Java 16+) son ideales para objetos de transferencia de datos inmutables: generan automáticamente constructores, accesores, equals, hashCode y toString. Jackson admite records sin configuración adicional desde Jackson 2.12+. Usa records para modelos JSON simples de solo lectura; usa POJOs regulares cuando necesites herencia o estado mutable.
¿Cómo gestiono los campos JSON desconocidos en un POJO de Jackson?
Por defecto, Jackson lanza un error en campos desconocidos. Añade @JsonIgnoreProperties(ignoreUnknown = true) a nivel de clase para omitir silenciosamente las claves desconocidas, algo esencial para clientes de API de terceros que pueden añadir campos. Alternativamente, añade un par @JsonAnyGetter / @JsonAnySetter para capturar campos desconocidos en un Map.
¿Puedo añadir anotaciones de Lombok para reducir el código repetitivo en las clases generadas?
Sí. Tras copiar las clases generadas, añade @Data (genera getters, setters, equals, hashCode, toString) o @Value (versión inmutable). Combínalos con @NoArgsConstructor y @AllArgsConstructor según sea necesario. Lombok y Jackson son completamente compatibles: las anotaciones @JsonProperty de Jackson coexisten con los métodos accesores generados por Lombok.
Advertisement300 × 250
Advertisement300 × 250