Estás sin conexión. Las herramientas que ya abriste siguen funcionando.
JSON a data class de Kotlin
Pega un JSON y obtén data classes de Kotlin con propiedades val. Los campos opcionales y null pasan a ser anulables con null por defecto, y si quieres se añaden anotaciones de kotlinx.serialization.
Gratis y privado. Todo funciona en tu navegador y no se sube nada.
Informar de un problema
Cómo funciona
Pega tu JSONPega una respuesta de tu API o abre un archivo .json. Con Ejemplo ves un caso de muestra.
Ajusta las opcionesIndica el nombre del tipo principal y las opciones de este lenguaje. El código se actualiza mientras escribes.
Copia o descargaCopia el código en tu proyecto o descárgalo como archivo.
Data classes para Android y servidor
Cada objeto JSON se convierte en una data class con propiedades en camelCase. Con kotlinx.serialization activado, cada clase lleva @Serializable y @SerialName conserva la clave original cuando el nombre de la propiedad es distinto. Los campos de tipo desconocido usan JsonElement, que kotlinx.serialization puede leer sin código extra.
Los campos que faltan en algunos elementos o que pueden ser null se escriben como tipos anulables con = null, así la lectura no falla cuando no están. Las fechas se quedan como String, porque kotlinx.serialization no trae un tipo de fecha; añade tu propio serializador o usa kotlinx-datetime si necesitas objetos de fecha. Sin las anotaciones, las clases también funcionan con Moshi, Gson o Jackson.
Preguntas frecuentes
¿Por qué algunas propiedades son anulables?
Porque el ejemplo muestra que pueden faltar o ser null. Si fueran no anulables, la lectura fallaría con esos datos.
¿Se sube mi JSON a algún sitio?
No. Los tipos se generan en tu navegador. Las respuestas de API con datos de clientes o claves nunca salen de tu dispositivo.
¿Cómo se detectan los campos opcionales?
Si el JSON contiene una lista de objetos, se comparan todos. Un campo que falta en al menos un objeto se marca como opcional. Con un solo objeto, todos los campos se tratan como obligatorios.
¿Qué pasa con los campos que siempre son null?
Con el ejemplo no se puede saber su tipo, así que el campo recibe un tipo general como unknown, object, Any o JsonElement. Añade un ejemplo en el que el campo tenga un valor para obtener un tipo preciso.
¿Por qué mi 1.0 aparece como número decimal?
La herramienta mira cómo está escrito el número. 1.0 o 2.5 pasan a ser double o float, 1 pasa a ser un entero. Si un campo es entero en unos elementos y decimal en otros, se usa el tipo decimal.
¿Puedo usar el resultado en código de producción?
Sí, el código compila tal cual en las configuraciones habituales. Revisa nombres y tipos antes de hacer commit, porque un ejemplo nunca puede mostrar todos los valores posibles.
¿Funciona sin conexión?
Sí. Después de abrir la página una vez, sigue funcionando sin conexión a internet.
Suelta el archivo para ver qué puedes hacer con él