JSON a tipos
Convierte una muestra de JSON en interfaces de TypeScript, structs de Go, modelos de Python, clases de C#, structs de Rust o un JSON Schema.
JSON a tipos - TypeScript, Go, Python, C#, Rust y JSON Schema
Pegue una muestra de JSON, por ejemplo la respuesta de una API, y obtenga las definiciones de tipos que le corresponden: interfaces de TypeScript, structs de Go con etiquetas JSON, modelos de Pydantic o dataclasses, clases de C#, structs de Rust para serde o un JSON Schema. Los objetos anidados se convierten en tipos propios con nombre, así que el resultado se lee como código escrito por una persona.
Las respuestas de una API suelen contener datos reales de clientes, tokens e identificadores internos. La conversión se ejecuta por completo en su navegador, así que nada de eso se envía a ninguna parte.
Cómo se usa
- Pegue el JSON en el cuadro de la izquierda, o pulse Ejemplo para ver uno.
- Elija el lenguaje en Salida.
- Indique el Nombre raíz del tipo de nivel superior; para TypeScript, elija
interfaceotype. - Copie el resultado en su proyecto.
Cómo se deducen los tipos
- Números: se convierten en enteros cuando todos los valores son enteros, y en coma flotante en caso contrario:
42y18.5en el mismo campo dan un float. - Arrays de objetos: se fusionan, de modo que toda clave vista en cualquier elemento aparece en el tipo.
- Campos opcionales: con Marcar como opcionales las claves que faltan activado, una clave que falta en algunos elementos pasa a ser opcional (
coupon?: string,omitempty,Option,= None). - Campos anulables: un valor que es
nullen un elemento hace que el campo admita null, por ejemplostring | null, o*stringen Go. - Tipos mezclados, como un número en un elemento y una cadena en otro, dan
unknown,Anyointerface{}, para que usted decida a mano. - Nombres: salen de las claves:
addressdaAddress, y los elementos deordersdanOrder. Los objetos con la misma forma comparten un único tipo.
Por lenguaje
| Salida | Qué obtiene |
|---|---|
| TypeScript | export interface o export type; las claves que no son nombres válidos van entre comillas |
| Go | Structs exportados con etiquetas json, int64 y float64, y siglas habituales como ID y URL |
| Python (Pydantic) | Clases BaseModel; campos en snake_case con Field(alias=...) cuando la clave JSON es distinta |
| Python (dataclass) | Clases @dataclass, con los campos opcionales al final, como exigen las dataclasses |
| C# | Clases con [JsonPropertyName] para System.Text.Json, long, double y List<T> |
| Rust | Structs que derivan Serialize y Deserialize, con #[serde(rename)] donde hace falta |
| JSON Schema | Un esquema draft 2020-12 con listas required, listo para los validadores |
Cómo obtener los tipos más precisos
Un tipo solo es tan completo como la muestra de la que sale. Use una respuesta que incluya cada campo opcional al menos una vez, y pegue un array con varios elementos distintos en lugar de uno solo, para que la fusión pueda ver qué campos varían. Las fechas llegan en JSON como cadenas y siguen siendo cadenas; conviértalas en su código donde necesite tipos de fecha reales.
Herramientas relacionadas
Para ordenar o validar antes el JSON, use el formateador de JSON. Para pasarlo a YAML, CSV o XML, use el conversor JSON. Las páginas de tareas abren esta herramienta con un lenguaje ya elegido: JSON a TypeScript, JSON a Go, JSON a Python, JSON a C# y generador de JSON Schema.