Saltar al contenido
TextArray
Totalmente local

JSON a mecanografiado

Genere interfaces TypeScript a partir de un documento JSON, con objetos anidados como subinterfaces nombradas.

Entrada

JSON a mecanografiado

Pegue un documento JSON (una respuesta API, un archivo de configuración, una fila de base de datos) y obtenga declaraciones TypeScript listas para usar. Los tipos se infieren de forma recursiva: las primitivas se asignan a cadenas, números y booleanos, las matrices llevan su tipo de elemento y las matrices mixtas se convierten en uniones limpias como (número | cadena)[]. Cada objeto anidado se convierte en una subinterfaz con nombre derivada de su clave de propiedad en PascalCase, por lo que una propiedad de "usuario" produce una interfaz de usuario que puede importar y hacer referencia en cualquier lugar.

Se detectan formas idénticas y se reutilizan una única interfaz en lugar de generar duplicados; un sufijo numérico aparece sólo cuando dos objetos comparten un nombre clave pero difieren en estructura. Las matrices vacías aparecen como desconocido[] y los objetos vacíos como Registro<cadena, desconocido>: marcadores de posición honestos en lugar de conjeturas. Los nombres de propiedades que no son identificadores válidos se citan automáticamente, por lo que las claves numéricas y de mayúsculas y minúsculas permanecen intactas.

Las opciones cubren convenciones de proyectos reales. Asigne un nombre al tipo raíz, elija entre declaraciones de interfaz y de tipo, exporte todo o nada, marque todas las propiedades como de solo lectura y decida cómo se tratan los valores nulos: como un tipo nulo explícito o como propiedades opcionales. JSON no válido produce un error tranquilo con la línea y columna del problema, de la misma manera que lo informa el formateador JSON.

Todo se ejecuta localmente en su navegador: las respuestas API con tokens, registros de usuario o cargas útiles internas nunca salen de su máquina. Pegue, copie las declaraciones en su código base y se escribirá la forma de sus datos.

Preguntas frecuentes

¿Cómo se escriben los objetos y matrices anidados?
Los objetos anidados se convierten en subinterfaces con nombre derivadas de su clave de propiedad en PascalCase. Las matrices toman su tipo de elemento; cuando los elementos difieren, el tipo es una unión como (número | cadena)[]. Una serie de objetos con la misma forma reutiliza una interfaz para todos los elementos.
¿Qué pasa con dos objetos de la misma forma?
Comparten una interfaz: el generador compara estructuras y reutiliza el nombre. Un sufijo numérico como Item2 aparece sólo cuando dos propiedades tienen la misma clave pero formas realmente diferentes.
¿Cómo se manejan los valores nulos?
De forma predeterminada, una propiedad nula se escribe como nula, que es exactamente lo que dice el ejemplo. Active "Propiedades opcionales para valores nulos" para emitir prop?: desconocido en su lugar: útil cuando nulo significa "a veces ausente" en su API.
¿Por qué mi matriz vacía se escribe como desconocida []?
Una matriz vacía no contiene evidencia de su tipo de elemento, por lo que desconocido[] es la respuesta honesta. Agregue un elemento representativo a la muestra y el generador infiere el tipo real.
¿Mi JSON está subido a alguna parte?
No. La herramienta se ejecuta completamente en su navegador y sus datos nunca salen de su dispositivo, lo que es seguro para respuestas API que contienen tokens o datos personales.