Desarrollador 🔒 Se ejecuta en tu navegador — no se envían datos

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

  1. Pegue el JSON en el cuadro de la izquierda, o pulse Ejemplo para ver uno.
  2. Elija el lenguaje en Salida.
  3. Indique el Nombre raíz del tipo de nivel superior; para TypeScript, elija interface o type.
  4. 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: 42 y 18.5 en 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 null en un elemento hace que el campo admita null, por ejemplo string | null, o *string en Go.
  • Tipos mezclados, como un número en un elemento y una cadena en otro, dan unknown, Any o interface{}, para que usted decida a mano.
  • Nombres: salen de las claves: address da Address, y los elementos de orders dan Order. Los objetos con la misma forma comparten un único tipo.

Por lenguaje

SalidaQué obtiene
TypeScriptexport interface o export type; las claves que no son nombres válidos van entre comillas
GoStructs 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>
RustStructs que derivan Serialize y Deserialize, con #[serde(rename)] donde hace falta
JSON SchemaUn 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.

Guías relacionadas