JSON a tipos: TypeScript, Swift, Kotlin y más

Pega un ejemplo de JSON y obtén definiciones de tipos en 8 lenguajes, con el motor de quicktype.

Funciona por completo en tu navegador. Nada de lo que escribes se envía ni se guarda.

Cómo usar

  1. Pega un ejemplo de JSON, como una respuesta de API, en el cuadro izquierdo.
  2. Elige el lenguaje de destino y, si quieres, el nombre del tipo raíz.
  3. Pulsa Convertir. Cada objeto anidado se convierte en su propio tipo.
  4. Copia el código o descárgalo como archivo fuente.

Escribir a mano los tipos de modelo de cada respuesta de API es lento y propenso a errores. Este conversor de JSON a tipos lee un ejemplo y genera el código correspondiente: interfaces TypeScript, structs Swift que cumplen Codable, data class de Kotlin, clases Dart, structs Go con etiquetas json, dataclass de Python y clases C# y Java. Cada objeto anidado pasa a ser un tipo con nombre, los arrays se convierten en listas tipadas y los nombres de las claves se adaptan al estilo del lenguaje, conservando la clave JSON original donde hace falta.

La conversión la hace quicktype-core, el motor de código abierto de quicktype (Apache License 2.0), que se carga en esta página la primera vez que pulsas Convertir. Con Solo tipos marcado obtienes declaraciones de tipos limpias. En Swift se mantienen la conformidad con Codable y las CodingKeys y se omiten los inicializadores de conveniencia. Si lo desmarcas, también obtienes las funciones auxiliares de parseo que quicktype genera por defecto, como la clase Convert de TypeScript, las anotaciones Jackson de Kotlin o from_dict en Python.

Los tipos se deducen del ejemplo, así que usa datos en los que aparezcan todos los campos. Un valor null da un tipo opcional o any, los números sin decimales pasan a ser enteros y los objetos con la misma forma en varios lugares pueden fusionarse en un solo tipo. Tu JSON no sale del navegador: el análisis y la generación de código ocurren en tu dispositivo y no se sube ni se guarda nada.

Preguntas frecuentes

¿Se envía mi JSON a un servidor?

No. quicktype-core se ejecuta en tu navegador. El JSON que pegas no se sube ni se guarda.

¿Por qué un campo sale como any u opcional?

En el ejemplo ese valor era null o faltaba en algunos objetos. Con un ejemplo con valores reales obtendrás un tipo concreto.

¿La salida de Swift usa Codable?

Sí. Los structs de Swift cumplen Codable e incluyen CodingKeys que apuntan a las claves JSON originales.

¿Puedo obtener data class de Kotlin sin librerías?

Sí. Deja marcado Solo tipos para obtener data class simples. Desmárcalo para añadir anotaciones Jackson y funciones auxiliares.

Herramientas relacionadas