JSON a esquema de Zod
JSON to Zod Schema
Construye un esquema de Zod a partir de un JSON de ejemplo, deduciendo campos nulos, opcionales y enumeraciones.
Convierte un documento JSON de ejemplo en un esquema de Zod, la comprobación en tiempo de ejecución que los tipos de TypeScript no pueden darte. La salida es un conjunto de constantes `z.object` en orden de declaración más un tipo inferido para la raíz, así que un solo pegado te da el parser y el tipo.
JSON de ejemplo
Suelta un archivo .json
Se lee en esta pestaña. No se sube nada.
Dale todos los elementos que tengas. Cada registro de más estrecha la deducción: un campo que falte en uno de ellos es lo que lo vuelve opcional.
TypeScript
Cómo se usa
Pega todos los registros que tengas
Se lee y fusiona cada elemento de cada arreglo, no solo el primero. Tres registros dicen mucho más que uno, porque un campo ausente en uno de ellos es exactamente lo que hace que ese campo sea opcional.
Da nombre al tipo raíz
Los objetos anidados toman el nombre de la clave que los contiene, en singular para los arreglos, así que `users` produce un `User`. Solo la raíz necesita un nombre tuyo.
Lee los recuentos bajo la salida
Tipos, campos opcionales, uniones y cuántos registros se fusionaron. Un recuento de uniones mayor que cero significa que un campo tuvo dos clases de valor distintas en tu muestra, algo que conviene mirar antes de pegar el resultado en una base de código.
Pégalo y analiza con él
Los bloques se emiten hijos primero, lo cual importa en Zod: un `z.object` que hace referencia a una constante declarada después lanza un error al importar en lugar de fallar al comprobar tipos. Mantén el orden tal como se genera.
Preguntas frecuentes
¿Por qué el esquema no coincide con el contrato de mi API?
Porque describe la muestra, no el contrato. Un campo marcado como opcional simplemente faltaba en uno de los registros que pegaste; un campo marcado como obligatorio puede seguir siendo opcional en una API de la que no has visto lo suficiente. Trata la salida como un primer borrador para ajustar a mano.
¿Hay refinamientos: email, uuid, longitud mínima?
Ninguno. Todo es `z.string()`, `z.number()` o `z.boolean()`, con `.int()` cuando todos los números de la muestra eran enteros. Añadir `.email()` porque una cadena tenía una @ sería adivinar, y un refinamiento equivocado rechaza datos válidos en producción.
¿Qué pasa con un arreglo vacío?
Se convierte en `z.array(z.unknown())`, porque un arreglo vacío no dice nada sobre el tipo de sus elementos. Pega un registro donde el arreglo no esté vacío y el esquema se rellena solo.
¿Para qué versión de Zod es esto?
Las llamadas emitidas son las que son iguales en Zod 3 y 4: `z.object`, `z.array`, `z.union`, `.nullable()`, `.optional()` y `z.record(z.string(), z.unknown())` en su forma de dos argumentos. No se usa nada específico de una versión.
Puede recibir de
JSON a tipos de TypeScript
JSON to TypeScript
Deduce interfaces o tipos de TypeScript a partir de un JSON de ejemplo, fusionando campos opcionales y uniones.
JSON a JSON Schema
JSON to JSON Schema
Deduce un JSON Schema a partir de uno o varios ejemplos, uniendo las formas que encuentra.
Formateador y validador de JSON
JSON Formatter & Validator
Indenta, minifica y valida JSON, señalando la línea y la columna exactas del error de sintaxis.
Formateador y validador de YAML
YAML Formatter & Validator
Reindenta el YAML de forma uniforme, lo valida y señala los tabuladores y las anclas que rompen los analizadores.
Después
Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.
Validador de JSON Schema
JSON Schema Validator
Valida un documento contra un JSON Schema e informa de cada fallo con la ruta de la instancia.
JSON a JSON Schema
JSON to JSON Schema
Deduce un JSON Schema a partir de uno o varios ejemplos, uniendo las formas que encuentra.
JSON a tipos de TypeScript
JSON to TypeScript
Deduce interfaces o tipos de TypeScript a partir de un JSON de ejemplo, fusionando campos opcionales y uniones.
Codificador y decodificador Base64
Base64 Encoder & Decoder
Codifica y decodifica Base64 y Base64URL, para texto o archivos, tratando UTF-8 correctamente.
curl a código
curl to Code
Convierte un comando curl en fetch, axios, requests de Python, Go, PHP o PowerShell.
Hash de un texto
Text Hash
Calcula MD5, SHA-1, SHA-256, SHA-384, SHA-512 y CRC-32 de una cadena, con salida opcional en mayúsculas o en Base64.