Convertir JSON a Kotlin Data Class
Genera data classes de Kotlin desde JSON, gratis, en tu navegador.
Para qué sirve
De JSON a Kotlin Data Class en segundos
Listo para Android y Kotlin
Genera código compatible con Retrofit, kotlinx.serialization y Room. Pega directamente en tu proyecto.
100% privado
Tu JSON de API nunca sale de tu navegador. Sin registro, sin telemetría.
Tipos correctos
Infiere String, Int, Long, Double, Boolean, List y tipos nullables con ?. Anidación completa soportada.
Instantáneo
Generación en tiempo real mientras escribes. Sin botones, sin esperas.
Cómo funciona
Tres pasos, sin complicaciones
Pega tu JSON
Pega el JSON de tu API o archivo de configuración. Puede ser un objeto anidado o un array.
Generación instantánea
La herramienta genera data classes de Kotlin automáticamente, con tipos inferidos y anotaciones de serialización.
Copia el código
Copia las data classes generadas y úsalas directamente en tu proyecto Android o Kotlin.
Preguntas frecuentes
¿Tienes dudas?
Las data classes son una característica especial de Kotlin que genera automáticamente los métodos equals(), hashCode(), toString() y copy() basándose en las propiedades declaradas en el constructor primario. Son ideales para representar modelos de datos, especialmente respuestas de APIs REST, porque eliminan el boilerplate que en Java requeriría escribir manualmente o usar Lombok.
Por defecto se generan propiedades val (inmutables), que es la práctica recomendada en Kotlin para modelos de datos. val significa que el valor no puede reasignarse después de la inicialización, lo que hace los objetos más predecibles y seguros en entornos multihilo. Usa var solo si necesitas mutar el objeto después de crearlo.
Sí. Se añade la anotación @Serializable de kotlinx.serialization, la biblioteca oficial de Kotlin para serialización JSON. También se añade @SerialName cuando el nombre del campo JSON difiere de la convención camelCase de Kotlin, por ejemplo cuando el JSON usa snake_case.
Cuando un valor en el JSON es null o cuando el campo no está presente en todos los objetos de un array, la propiedad se genera como tipo nullable usando el operador ?. Por ejemplo, String? en lugar de String. En Kotlin, la distinción entre tipos nullables y no nullables es parte del sistema de tipos y el compilador la verifica en tiempo de compilación.
En desarrollo Android, las data classes de Kotlin se usan principalmente para modelar respuestas de APIs REST con Retrofit, almacenar datos en bases de datos locales con Room, serializar objetos para pasar entre Activities/Fragments como Parcelable, y como modelos en arquitecturas MVVM o MVI. Desde que Google adoptó Kotlin como lenguaje oficial para Android en 2019, las data classes son el estándar de facto.
Kotlin en Android, kotlinx.serialization y Retrofit para APIs type-safe
En mayo de 2019, Google anunció que Kotlin se convertía en el lenguaje preferido (preferred language) para el desarrollo de Android, desplazando a Java como primera opción. Desde entonces, la adopción de Kotlin en Android ha crecido hasta que hoy más del 95% de las apps del top 1000 de Google Play usan Kotlin. Las data classes son una de las características más valoradas por los desarrolladores Android precisamente porque eliminan el boilerplate de los POJOs de Java.
kotlinx.serialization es la biblioteca oficial de serialización de JetBrains para Kotlin. A diferencia de Gson o Moshi, es completamente nativa en Kotlin, funciona con compilación multiplatforma (Kotlin Multiplatform Mobile), soporta corrutinas de forma nativa, y genera código en tiempo de compilación en lugar de usar reflexión en tiempo de ejecución. La anotación @Serializable en una data class es suficiente para serializar y deserializar JSON.
Retrofit, desarrollado por Square, es la biblioteca más popular para consumir APIs REST en Android. Combinada con kotlinx.serialization o Gson como convertidor, permite definir interfaces de API con anotaciones (@GET, @POST, @Body) y Retrofit genera automáticamente la implementación. Las data classes generadas por esta herramienta son directamente compatibles con Retrofit como tipos de retorno o parámetros de request body.