O que faz
Gera um esquema de validação Zod a partir de JSON. Escalares mapeiam para seus validadores (z.string, z.number, z.boolean, z.null), objetos recaem em z.object({...}) inline, arrays viram z.array(...) — e um array de tipos mistos vira z.union([...]) de cada tipo de elemento distinto. Solte a saída direto num projeto TypeScript que usa Zod para validação em tempo de execução: respostas de API, arquivos de configuração, payloads de formulário, fixtures. 100 % no lado do cliente.
Como usar
- Cole JSON na caixa JSON (uma amostra vem pré-preenchida — Exemplo a restaura, Limpar a esvazia).
- Opcionalmente defina um Nome raiz (padrão
Root, usado no bindingconst Root = ...). - O esquema renderiza ao vivo à direita, fixo enquanto você rola a entrada.
- Copie-o, ou Baixe como
schema.ts.
Exemplos
Um 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()),
});
Objetos aninhados recaem inline — {"user":{"name":"Ada"}} →
const Root = z.object({
user: z.object({
name: z.string(),
}),
});
Arrays mistos viram array-de-união — {"xs":[1,"a"]} →
const Root = z.object({
xs: z.array(z.union([
z.number(),
z.string(),
])),
});
Casos-limite — arrays vazios viram z.array(z.unknown()); null mapeia para z.null(); qualquer coisa que o parser rejeite aparece na caixa de erro em vez do esquema.
Bom saber
- Privado: a análise é local — seguro para payloads sensíveis.
- O esquema gerado é um ponto de partida: adicione refinamentos
.min()/.max()onde seus dados reais têm restrições que a amostra não mostrou. - Ferramentas relacionadas: JSON to TypeScript, Validador de JSON.