Conversor JSON para schema Zod
Cole JSON e obtenha um schema Zod pronto para uso na hora, 100% no navegador. z.number().int(), .optional() e .nullable() corretos, além de um tipo z.infer. Grátis.
Opções
O que é um schema Zod?
Um schema Zod é uma descrição TypeScript-first do formato de um valor que valida dados em tempo de execução e infere um tipo estático em tempo de compilação. Gerar um a partir de uma amostra JSON significa que você nunca escreve à mão o código repetitivo de validação para respostas de API, formulários ou arquivos de configuração. Este gerador de schema Zod infere tipos corretos, marca chaves ausentes como .optional(), valores null como .nullable() e entrega um tipo z.infer — tudo 100% no seu navegador.
Exemplos
Resposta de API
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} import { z } from "zod";
export const RootSchema = z.object({
id: z.number().int(),
name: z.string(),
email: z.string(),
active: z.boolean(),
roles: z.array(z.string()),
});
export type Root = z.infer<typeof RootSchema>;
Um payload REST típico torna-se um schema Zod pronto para uso. Números inteiros inferem z.number().int(), e o array roles torna-se z.array(z.string()). Um tipo z.infer vem de brinde.
Objeto aninhado
{"repo":"zod","owner":{"login":"colinhacks","id":100}} import { z } from "zod";
export const OwnerSchema = z.object({
login: z.string(),
id: z.number().int(),
});
export const RootSchema = z.object({
repo: z.string(),
owner: OwnerSchema,
});
export type Root = z.infer<typeof RootSchema>;
Objetos aninhados tornam-se seu próprio schema nomeado (OwnerSchema) e são referenciados por campo. Os schemas filhos são declarados antes do schema pai que os usa, e formatos idênticos são declarados uma vez e reutilizados.
Array de objetos (campo opcional)
{"users":[{"id":1,"nick":"x"},{"id":2}]} import { z } from "zod";
export const UserSchema = z.object({
id: z.number().int(),
nick: z.string().optional(),
});
export const RootSchema = z.object({
users: z.array(UserSchema),
});
export type Root = z.infer<typeof RootSchema>;
Arrays de objetos são mesclados em um único schema de elemento. Uma chave ausente em alguns itens torna-se .optional(), então o parsing ainda funciona quando ela não está presente.
Campo nullable e unificação de números
{"items":[{"sku":"A1","discount":0.1},{"sku":"A2","discount":null}]} import { z } from "zod";
export const ItemSchema = z.object({
sku: z.string(),
discount: z.number().nullable(),
});
export const RootSchema = z.object({
items: z.array(ItemSchema),
});
export type Root = z.infer<typeof RootSchema>;
Um campo que é null em algumas amostras, mas tipado em outras, torna-se .nullable(). Como 0.1 tem ponto decimal, o número unifica para z.number() em vez de z.number().int().
Como converter JSON para Zod
- 1
Cole seu JSON
Insira um objeto JSON, array ou resposta de API no campo de entrada. A conversão começa instantaneamente.
- 2
Ajuste a saída
Renomeie o schema raiz e alterne a linha de import, o tipo z.infer ou a palavra-chave export para combinar com o estilo do seu projeto.
- 3
Copie ou baixe
Pegue o schema Zod gerado com um clique e cole-o direto na sua camada de validação.
Common Use Cases
- Validar respostas de API
- Transforme uma resposta de exemplo de REST ou GraphQL em um schema Zod e faça o parse na fronteira do fetch, para que dados malformados falhem rápido com um erro claro em vez de vazar pelo seu app.
- Formulários e entradas com tipo seguro
- Gere um schema para entrada de formulários ou queries e reutilize o tipo z.infer na sua UI e nos handlers para segurança de tipos de ponta a ponta.
- Schemas de tRPC e de ferramentas de IA
- Crie schemas de entrada e saída para procedimentos tRPC ou ferramentas de IA com saída estruturada a partir de um payload de exemplo, em vez de escrevê-los à mão.
Como a conversão funciona
- Inferência estrutural
- Cada objeto torna-se um schema nomeado; formatos idênticos são declarados uma vez e reutilizados. Arrays de objetos são mesclados chave por chave, e chaves ausentes em alguns itens tornam-se .optional().
- Mapeamento de tipo correto
- Inteiros mapeiam para z.number().int() e decimais para z.number(). Strings, booleanos e valores null mapeiam para z.string(), z.boolean() e z.null(); um array de primitivos mistos torna-se um z.union().
- Tipos TypeScript incluídos
- Um alias de tipo z.infer é emitido para o schema raiz, então o schema continua sendo a única fonte de verdade e seus tipos nunca se desalinham da sua validação.
- 100% no lado do cliente
- O parsing e a geração rodam no seu navegador sem chamadas de rede, então seus dados permanecem privados.
Dicas para schemas Zod limpos
- Nomeie seu schema raiz
- Defina um nome de raiz significativo, como User ou ApiResponse, em vez do padrão Root, para um código legível e autodocumentado.
- Refine z.unknown() e unions
- Arrays vazios ou mistos produzem z.unknown() ou um z.union() amplo. Cole uma amostra mais rica e representativa para que a ferramenta infira tipos precisos, e depois aperte tudo o que permanecer ambíguo.
- Valide na fronteira
- Chame safeParse() onde dados não confiáveis entram — respostas de API, entrada de formulários, webhooks — para que dados ruins sejam capturados antes de chegarem à sua lógica de aplicação.
Perguntas frequentes
Como converter JSON para um schema Zod?
Qual é a diferença entre JSON para Zod e JSON Schema para Zod?
Como obtenho um tipo TypeScript a partir do schema?
Como campos opcionais e null são tratados?
Qual tipo numérico ele gera?
A saída funciona com Zod 3 e Zod 4?
Como valido dados com o schema gerado?
Como arrays e tipos mistos são tratados?
Meus dados JSON são privados e seguros?
A ferramenta é grátis? Preciso de uma conta?
Ferramentas relacionadas
Ver todas as ferramentas →Decodificador e Codificador Base64
Codificação e Formatação
Decodifique e codifique Base64 online gratuitamente. Conversão em tempo real com suporte completo a UTF-8 e emoji. 100% privado — executa no seu navegador. Sem necessidade de cadastro.
Conversor de Base64 para Imagem
Codificação e Formatação
Decodifique uma string Base64 ou data URI de volta para imagem no navegador. Pré-visualize, leia dimensões e MIME, e baixe como PNG, JPG, GIF, SVG. Sem upload.
Conversor CSV para JSON
Codificação e Formatação
Converta CSV para JSON no navegador. RFC 4180, inferência de tipos, cabeçalho, seguro para inteiros grandes. 100% privado, sem upload.
Conversor de .env para JSON
Codificação e Formatação
Cole um arquivo .env e obtenha JSON na hora. Suas senhas, chaves de API e tokens nunca saem do navegador — 100% privado, sem upload, analisador dotenv grátis.
Decodificador de Entidades HTML — Unescape HTML
Codificação e Formatação
Decodifique entidades HTML e faça unescape de HTML online — grátis, sem cadastro, 100% no seu navegador. Converte referências nomeadas, decimais & hex de volta em caracteres; nada é enviado.
Codificador de Entidades HTML — Escapar HTML
Codificação e Formatação
Codifique entidades HTML e escape caracteres especiais (< > & " ') online — grátis, sem cadastro, 100% no seu navegador. Saída nomeada, decimal ou hex; nada é enviado.