Saltar al contenido

JSON a clase Java

Convierte una muestra JSON en clases Java, con tipos anidados e listas genéricas deducidas automáticamente.

Entrada
Salida

JSON a clase Java

Pega una muestra JSON y esta herramienta genera las clases Java necesarias para representarla, deduciendo tipos de campos, tipos de objetos anidados y tipos de elementos de listas genéricas directamente de los valores que proporcionas. Está diseñada para desarrolladores backend que reciben una respuesta de API o un archivo de configuración y necesitan un modelo tipado para deserializarlo, sin escribir manualmente cada campo.

Elige cómo se anotan los campos: sin anotaciones, @JsonProperty de Jackson, o @SerializedName de Gson, cada una llevando la clave JSON original para que la serialización siga coincidiendo después de que se renombre un campo a camelCase. Desactiva getters y setters para una clase simple con campos públicos, o reemplázalos con @Data de Lombok o un record de Java, donde los componentes toman el lugar de los campos y accesores. Los tipos envolventes (Integer, Boolean, Double) se pueden forzar en todas partes en lugar de primitivos; la herramienta siempre usa un envolvente donde un valor es genuinamente opcional, ya que un primitivo nunca puede contener null. Se agrega una declaración de paquete cuando se proporciona, y los objetos anidados se representan como clases anidadas estáticas en un archivo o como clases de nivel superior separadas.

Cuando la misma forma aparece más de una vez —objetos repetidos en una matriz, o dos campos hermanos con estructura idéntica—, la herramienta reutiliza una sola clase generada en lugar de duplicarla. Los campos observados con diferentes formas en una matriz se fusionan en una clase, con campos ausentes en algunos elementos marcados como opcionales. Los números permanecen como int cuando se ajustan a un rango de 32 bits y se amplían a long o double según sea necesario; una clave JSON que no puede ser un identificador Java, como un emoji, recurre a un nombre generado seguro.

Todo se ejecuta localmente en tu navegador —una muestra JSON nunca se carga ni se transmite a un servidor. Copia las clases generadas en tu proyecto, descárgalas como archivo .txt, o envía el resultado nuevamente a la entrada para ejecutar otra herramienta en él.

Preguntas frecuentes

¿Maneja objetos anidados y matrices?
Sí. Los objetos anidados se convierten en su propia clase (anidada o separada, dependiendo de la opción de diseño de clase) y las matrices se convierten en una java.util.List genérica del tipo de elemento deducido.
¿Qué sucede con un campo que falta en algunos objetos de muestra?
Se marca como opcional y, si es un primitivo, se actualiza a su tipo envolvente (Integer, Boolean, Double) para que el campo pueda ser legítimamente null.
¿Puedo usar Lombok o Java records en lugar de getters y setters manuales?
Sí. Activa Lombok @Data para una clase anotada con @Data y campos privados, o Usa un record Java para generar un record con los campos como componentes —ambos reemplazan los accesores escritos a mano.
¿Cómo se eligen los nombres de campos cuando una clave JSON no es un identificador Java válido?
La clave se convierte a camelCase; una clave que produce un nombre vacío o que entra en conflicto con palabras clave vuelve a un nombre generado seguro como field o una palabra clave con un guion bajo al final.
¿Se carga mi JSON en algún lugar?
No. La generación de clases se ejecuta completamente en tu navegador —tu muestra JSON nunca se envía a un servidor.