Desenvolvedor / Tipos
Conversor de JSON para esquema Zod
Gere um esquema Zod e seu tipo TypeScript a partir de um exemplo JSON, com objetos aninhados, arrays, campos opcionais e anuláveis e números inteiros.
Conversor de JSON para esquema Zod: Cada objeto do exemplo se torna um esquema z.object, exportado junto com um tipo inferido a partir dele, e os objetos aninhados recebem seus próprios esquemas nomeados. Objetos dentro de um array são mesclados: chaves ausentes em alguns objetos recebem .optional(), chaves que às vezes têm valor nulo recebem .nullable(), e números inteiros recebem .int(). Os esquemas gerados foram verificados analisando seus próprios exemplos com o Zod. Roda 100% localmente no seu navegador, sem enviar nenhum arquivo para o servidor.
- Categoria
- Ferramentas para desenvolvedores
- Execuções
- No seu navegador
- Custo
- Grátis · sem cadastro
- Disponibilidade
- Pronto para usar
Roda inteiramente no seu navegador
TypeScript
import { z } from "zod";
export const AddressSchema = z.object({
city: z.string(),
zip_code: z.string(),
});
export type Address = z.infer<typeof AddressSchema>;
export const UserSchema = z.object({
id: z.number().int(),
user_name: z.string(),
avatar_url: z.string(),
score: z.number(),
tags: z.array(z.string()),
address: AddressSchema,
manager_id: z.number().int().nullable(),
nickname: z.string().optional(),
});
export type User = z.infer<typeof UserSchema>;
export const UserListSchema = z.array(UserSchema);
Cada objeto recebe um schema e um tipo inferido. As chaves ausentes em alguns objetos recebem .optional(), as chaves que às vezes são null recebem .nullable() e os números inteiros recebem .int(); flexibilize qualquer regra que sua API não garanta.
Usando o schema
Chame Schema.parse(data) para validar e gerar um erro quando os dados forem inválidos, ou Schema.safeParse(data) para obter um resultado que você possa verificar sem try e catch. O tipo exportado, de z.infer, permanece sincronizado com o schema conforme você o edita.
Se você precisa apenas de tipos em tempo de compilação, JSON para TypeScript fornece interfaces simples; para validar com base em um JSON Schema existente, use o validador de JSON Schema.
Refinando as regras geradas
O exemplo mostra apenas o que contém, portanto, use o schema como ponto de partida: adicione .email(), .url() ou .datetime() às strings quando aplicável, z.enum([...]) aos campos com um conjunto fixo de valores e .min() ou .max() quando seus dados tiverem limites.
Como usar
- Cole um exemplo JSON, de preferência um array com vários registros típicos.
- Dê um nome ao tipo principal.
- Copie os esquemas e use-os para validar dados em tempo de execução.
Privacidade e limitações
O JSON é convertido no seu navegador e nunca é enviado para um servidor.
Ferramentas relacionadas
Perguntas frequentes
Por que usar Zod em vez de uma interface TypeScript?
Uma interface desaparece quando o código é compilado, portanto não pode verificar dados em tempo de execução; um esquema Zod verifica os dados e fornece o mesmo tipo com z.infer.
Os números inteiros realmente devem usar .int()?
Somente se sua API garantir números inteiros. Se um preço ou pontuação puder ter uma fração, remova .int(), mesmo quando o exemplo tiver apenas números inteiros.
A ferramenta lida com strings como datas ou e-mails?
Elas são tipadas como z.string(); adicione refinamentos como .email(), .url() ou uma verificação de data quando seus dados exigirem isso.
Ferramenta grátis · no seu navegador execuções · não precisa de conta