Generación de tipos

JSON a Javamodelos a partir de respuestas reales

Un array genera el modelo de sus elementos. Lee la respuesta completa como List<Root>.

JSON a Java

Entrada JSON

Análisis y generación en el navegador. La entrada no se sube ni se guarda.

Código generado

Opciones de generación

Jackson 2.x; Kotlin necesita su módulo. Inferir tipos no valida datos. Revisa la configuración del decodificador más abajo.

Entrada array: el archivo define el elemento. Lee List<Root>.

2 clases · 2 campos nullable

JSON a Java sirve cuando tienes una respuesta de una API pero faltan las clases. Reúne varias muestras en un array para detectar campos que aparecen después o pasan a ser null.

Este generador de POJO ofrece un borrador. Las muestras no demuestran qué campos son obligatorios ni todos los valores que la API puede devolver en el futuro.

Por qué usar JSON a Java

No quedarse con el primer objeto

JSON a Java combina los campos de todos los objetos en la misma posición del array. Conserva los que aparecen en registros posteriores y refleja las ausencias o los valores null en los tipos.

Dos tarjetas con campos distintos convergen en un modelo; una marca hueca indica un campo ausente.

Conservar la relación con las claves

Las claves con símbolos o palabras reservadas se convierten en identificadores válidos. Las anotaciones Jackson mantienen el nombre original; los nombres repetidos reciben sufijos numéricos estables.

Claves irregulares conectadas por colores con propiedades válidas y una clase anidada.

Revisa las muestras y las opciones

01

Aporta variantes útiles

La raíz debe ser un objeto o un array no vacío compuesto solo por objetos. Se deduce el modelo de cada elemento sin inventar un campo contenedor. Los arrays internos se analizan de forma recursiva.

02

Elige la política de null

El modo observado amplía los campos ausentes o null. El modo global usa wrappers Java y propiedades Kotlin con ? y valor null por defecto. Desactiva el anidamiento para colocar clases auxiliares al nivel superior del mismo archivo.

03

Exporta la revisión actual

La generación automática espera 350 ms. Desactívala para usar Generar o Ctrl/Cmd+Enter. Cualquier cambio bloquea la exportación. Borrar y cargar el ejemplo conservan una instantánea reversible de entrada, opciones y resultado.

Campos, tipos y clases generadas

Tipos numéricos precisos

Los enteros normales dentro del rango de 64 bits con signo usan long/Long; los mayores, BigInteger. Los decimales y exponentes, incluidos 1.0 y 1e3, usan BigDecimal. La inferencia no pasa por el punto flotante de JavaScript.

Constructores Kotlin

Puedes cambiar de clases Java a data classes Kotlin en esta página. Las propiedades ausentes o null usan T? = null; las demás no tienen valor predeterminado. Un objeto raíz vacío produce una class normal sin parámetros.

Identificadores y anotaciones

Se crean nombres ASCII camelCase con sufijos para las colisiones. JsonProperty se aplica al campo Java y al parámetro y getter Kotlin. Los tipos cualificados evitan que nombres raíz como String o List oculten otros tipos.

Objetos anidados en un archivo

Java usa campos públicos y clases static anidadas por defecto; Kotlin usa clases de datos anidadas. Si desactivas el anidamiento, las clases auxiliares Java no son public y siguen compartiendo un único archivo descargable.

Compatibilidad y límites

Configura Jackson
Las anotaciones son para Jackson 2.x. Kotlin requiere jackson-module-kotlin y kotlin-reflect. Activa FAIL_ON_NULL_FOR_PRIMITIVES y StrictNullChecks para los controles de null. Las referencias Java pueden seguir conteniendo null; el modelo no sustituye a un validador.
Tipos amplios y precisión
Los valores mixtos o solo null producen Object/Any; los objetos internos vacíos, Map. Un array vacío no permite deducir sus elementos. Activa USE_BIG_INTEGER_FOR_INTS y USE_BIG_DECIMAL_FOR_FLOATS en posiciones dinámicas. Desactiva FAIL_ON_EMPTY_BEANS al serializar clases raíz vacías.
Claves que se rechazan
Un nombre vacío en JsonProperty significa usar el nombre por defecto, así que no representa una clave JSON vacía. Sin anotaciones, cualquier clave que necesite renombrarse también falla. Usa Map o un decodificador propio para esos casos.
No interpreta esquemas
No hay JSON Schema, OpenAPI, Lombok, record, Gson ni inferencia de fechas o enums. Las cadenas siguen siendo cadenas. Se rechazan raíces escalares y arrays raíz vacíos o mixtos. Ausencia y null explícito no se conservan como estados separados.
Presupuestos finitos
Solo JSON estricto: sin comentarios, claves duplicadas, reparación, URL ni importación de archivos. Límites: 500.000 caracteres de entrada, 50.000 nodos, profundidad 40, 100 campos por objeto, 200 clases, 1.000 caracteres por clave/número, exponente absoluto 10.000 y 1.000.000 de caracteres de salida.

Preguntas sobre JSON a Java

¿El código es compatible con Spring Boot?

JSON a Java genera modelos para Jackson 2.x. Añade el paquete y las dependencias en tu proyecto, y revisa el módulo Kotlin y las reglas de null. No genera configuración para todas las versiones de Spring Boot.

¿Procesa arrays de objetos?

Sí, si contienen al menos un objeto y ningún elemento de otro tipo. Se combinan todas las muestras. El archivo define un elemento; para leer la respuesta completa utiliza List<Root>.

¿Se envían mis datos a un servidor?

No. El análisis y la generación se realizan en el navegador actual, sin subir ni guardar la entrada. Tampoco hay lectura de URL ni enlaces para compartir muestras.

¿Qué tipos se asignan a los números?

Los enteros normales usan long/Long o BigInteger según el rango. Los decimales y exponentes usan BigDecimal. Para números dentro de Object/Any debes aplicar las opciones de precisión de Jackson indicadas arriba.

¿Cómo convierto una respuesta compuesta de una API en un objeto Java?

Pega un objeto o varias respuestas en un array y revisa los tipos anidados generados. Añade el código y Jackson a tu proyecto. Si la respuesta raíz es un array, deserializa una lista de la clase raíz, no una instancia única.

¿Hay un caso de inferencia que mejorar?

Prueba el modelo en tu proyecto

Usa JSON a Java con varias respuestas reales, comprueba la política de null y las anotaciones, y compila el archivo exportado con la configuración Jackson de tu proyecto.