Qué hace
Genera un esquema de validación Zod a partir de JSON. Los escalares se mapean a su validador (z.string, z.number, z.boolean, z.null), los objetos se anidan recursivamente en un z.object({...}) en línea, los arrays se convierten en z.array(...) — y un array de tipos mixtos se convierte en un z.union([...]) de cada tipo de elemento distinto. Suelta la salida directamente en un proyecto TypeScript que use Zod para validación en tiempo de ejecución: respuestas de API, archivos de configuración, cargas de formularios, fixtures. 100% en el cliente.
Cómo usarlo
- Pega JSON en el cuadro JSON (hay un ejemplo precargado — Ejemplo lo restaura, Limpiar lo vacía).
- Opcionalmente fija un Nombre raíz (por defecto
Root, usado para el enlaceconst Root = ...). - El esquema se renderiza en vivo a la derecha, fijado mientras te desplazas por la entrada.
- Cópialo, o Descargar como
schema.ts.
Ejemplos
Un objeto plano — {"id":1,"name":"Ada","active":true,"tags":["a","b"]} →
const Root = z.object({
id: z.number(),
name: z.string(),
active: z.boolean(),
tags: z.array(z.string()),
});
Los objetos anidados se recursan en línea — {"user":{"name":"Ada"}} →
const Root = z.object({
user: z.object({
name: z.string(),
}),
});
Los arrays mixtos se convierten en array-de-unión — {"xs":[1,"a"]} →
const Root = z.object({
xs: z.array(z.union([
z.number(),
z.string(),
])),
});
Casos límite — los arrays vacíos se convierten en z.array(z.unknown()); null se mapea a z.null(); cualquier cosa que el analizador rechace se muestra en el recuadro de error en lugar del esquema.
Buen saber
- Privado: el análisis es local — seguro para cargas sensibles.
- El esquema generado es un punto de partida: añade refinamientos
.min()/.max()donde tus datos reales tengan restricciones que el ejemplo no mostró. - Herramientas relacionadas: JSON to TypeScript, JSON Validator.