JSON para Zod – Gere o schema de validação em TypeScript
Cole um JSON e receba o schema Zod correspondente, com os tipos já inferidos. Valide payloads em TypeScript sem escrever o schema na mão.
Código gerado
import { z } from "zod";
export const enderecoSchema = z.object({
"cidade": z.string(),
"uf": z.string(),
});
export type Endereco = z.infer<typeof enderecoSchema>;
export const rootSchema = z.object({
"id": z.number().int(),
"nome": z.string(),
"ativo": z.boolean(),
"saldo": z.number(),
"tags": z.array(z.string()),
"endereco": enderecoSchema,
"ultimoAcesso": z.null().nullable(),
});
export type Root = z.infer<typeof rootSchema>;
Os tipos são inferidos do exemplo: campos ausentes em parte dos itens de um array viram opcionais, e valores null viram anuláveis. Tudo roda no navegador — o JSON não é enviado a nenhum servidor.
Como usar esta ferramenta
- Cole o JSON de exemplo
- Ajuste o nome do schema, se quiser
- Copie o código Zod gerado
- Cole no projeto e refine os campos opcionais
Sobre esta ferramenta
O que é
Zod é uma biblioteca de validação de esquemas para TypeScript em que o tipo estático é inferido do próprio schema. Validar com Zod garante em tempo de execução o que o TypeScript só garante na compilação.
Quando usar
- Validar a resposta de uma API externa antes de usar os dados
- Tipar e validar um formulário no front-end
- Conferir variáveis de ambiente na subida da aplicação
- Criar o contrato de entrada de uma rota de API
- Partir de um payload real em vez de escrever o schema do zero
Perguntas frequentes
- O schema gerado marca campos opcionais?
- Só é possível inferir o que existe no exemplo colado. Campos que podem faltar em outras respostas precisam receber .optional() manualmente depois.
- Como fica um campo null no JSON?
- Vira z.null(), que raramente é o que se quer. Na prática, troque por .nullable() sobre o tipo real do campo.
- Dá para extrair o tipo TypeScript do schema?
- Sim. Com z.infer<typeof MeuSchema> o TypeScript deriva o tipo estático direto do schema, sem duplicar a definição.