Convertir JSON a Data Classes de Kotlin Gratis – Genera Modelos Kotlin

Usa el Convertir JSON a Data Classes de Kotlin gratuito abajo: tus datos nunca salen de tu navegador, todo el trabajo ocurre en tu dispositivo y no se sube a ningún servidor.

De JSON a Data Classes de Kotlin, Listas para Pegar

Quien desarrolla en Android o en Kotlin convierte JSON a data classes constantemente. Llega una respuesta de API y, antes de que la aplicación pueda mostrar nada, los datos necesitan una forma: una data class con propiedades en el orden correcto y con los tipos correctos. Escribirlas a mano es repetitivo, y la repetición produce descuidos: una propiedad con el tipo incorrecto, un objeto anidado pegado como texto sin procesar, una lista declarada con el tipo de elemento equivocado. Esta herramienta escribe las data classes desde tu JSON, así que la parte repetitiva queda hecha y la revisión queda en tus manos.

Pega el JSON, nombra la clase principal y pulsa Convertir. El resultado es un conjunto de data classes de Kotlin. Los textos se convierten en String, los enteros en Int, los decimales en Double, los booleanos en Boolean y los arreglos en List del tipo del elemento. Cada propiedad se declara con val, lo que encaja con el estilo inmutable preferido para modelos de API.

Cómo Se Construyen las Clases

Cada objeto del JSON se convierte en una data class. El objeto principal se convierte en la clase que nombraste. Un objeto de dirección anidado se convierte en una clase Address. Un arreglo de pedidos se convierte en una List de Order, con el nombre de clase en singular a partir del campo. Si dos campos crearían clases con el mismo nombre, la herramienta numera la segunda para que el código siga compilando. Cambia ese nombre por algo con significado cuando sepas qué representa.

Los nombres de propiedad siguen el estilo Kotlin. Una clave como zipCode se mantiene como zipCode. Una clave como zip_code se convierte en zipCode. Una clave como orderId se mantiene como orderId. Así el código generado parece escrito por un desarrollador Kotlin, y funciona con el comportamiento por defecto de kotlinx.serialization y Moshi en muchos casos, ya que esas bibliotecas relacionan claves y propiedades directamente o aplican estrategias de nombres conocidas.

Tipos y el Problema de los Nulos

La deducción de tipos es conservadora a propósito. Los enteros se convierten en Int, los decimales en Double y los textos siguen siendo textos aunque contengan dígitos. Un identificador enviado como “1024” entre comillas se mantiene como String, porque la herramienta no puede saber si las comillas tienen significado. Si tu API mezcla textos numéricos y números para el mismo campo, decide un tipo en tu modelo y convierte en el límite de tu código.

Los valores nulos se convierten en Any anulable, con signo de interrogación. Esa es la herramienta siendo honesta: una muestra nula no dice nada sobre el tipo real. Sustituye Any por el tipo real, por ejemplo String o Int, en cuanto lo conozcas. Los arreglos vacíos se convierten en una lista de Any anulable por la misma razón.

Los campos que faltan son una cuestión relacionada. Si un campo aparece en una respuesta pero no en otra, la propiedad debería ser anulable con un valor por defecto, o tu conversor debería tolerar su ausencia. Las data classes de Kotlin con valores por defecto manejan esto bien con la mayoría de las bibliotecas JSON. Añade un valor por defecto nulo a las propiedades opcionales después de generar, y tu modelo sobrevivirá a las respuestas que las omiten.

Uso con tu Biblioteca JSON

Con kotlinx.serialization, añade la anotación Serializable a cada clase generada y decodifica con Json.decodeFromString. Con Moshi, añade JsonClass con generateAdapter en true, o usa el adaptador reflexivo si tu proyecto lo prefiere. Con Gson, las data classes funcionan como modelos simples sin anotaciones en la mayoría de los casos. El código generado es neutro respecto a la biblioteca a propósito: te da la forma y tú añades la anotación que tu biblioteca necesita.

Los nombres de propiedad son el único punto donde las bibliotecas difieren. kotlinx.serialization relaciona claves y propiedades, aplicando una estrategia de nombres solo si la configuras. Si tu JSON usa snake_case y tus propiedades usan camelCase, configura esa estrategia o añade anotaciones SerialName. Revisa el comportamiento de tu biblioteca una vez y aplica la misma corrección en todas las clases.

Una Rutina Práctica de Pruebas

Convierte la respuesta más grande que tengas. Una muestra pequeña oculta objetos anidados y casos límite. Después, prueba el modelo con una segunda respuesta distinta del mismo endpoint. Busca campos que cambian de tipo, campos que desaparecen y arreglos vacíos en una respuesta y llenos en otra. Cada variación es una edición pequeña del modelo: un tipo anulable aquí, un tipo numérico más amplio allá, un valor por defecto en otro punto.

Cuidado con los números que superan el rango de Int: identificadores, marcas de tiempo en milisegundos y contadores pueden superar los 32 bits. Si un valor se acerca a los dos mil millones, cámbialo a Long. Y cuidado con los decimales que a veces llegan como enteros: un precio de 12.0 puede llegar como 12, y una propiedad Double acepta ambas formas, mientras que una Int falla con la forma decimal.

Privacidad

La herramienta funciona por completo en tu navegador. Tu JSON nunca se sube, nunca se guarda y nunca sale de tu dispositivo. Puedes convertir respuestas con datos reales de usuarios sin preocupación, aunque mantener tokens y contraseñas fuera del texto pegado siempre es una buena práctica. No hace falta registrarse y la herramienta es gratuita.

Herramientas relacionadas

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top