Gerador e Validador de JSON Schema
Gere um JSON Schema a partir de uma amostra ou valide um documento JSON contra um, direto no seu navegador. Seus dados nunca saem do seu dispositivo.
A geração de schema e a validação com Ajv rodam localmente no seu navegador, então sua amostra JSON, schema e documento nunca são enviados.
Precisa de tipos TypeScript em vez disso? Experimente o JSON para TypeScript.
Sobre Gerador de JSON Schema
Este gerador de JSON Schema transforma uma amostra JSON em um JSON Schema pronto para uso, e o validador embutido verifica qualquer documento JSON contra um schema que você fornece. No modo Gerar, ele percorre sua amostra, infere tipos para objetos, arrays, strings, números, booleanos e null, unifica itens de array e pode marcar cada propriedade como obrigatória, definir additionalProperties como false e detectar formatos de string como email, date, date-time, uri e uuid. Escolha draft-07 ou 2020-12 para a saída. No modo Validar, ele executa o Ajv com allErrors e ajv-formats, depois lista cada falha com seu caminho de instância e mensagem. Foi feito para desenvolvedores de API, engenheiros de backend e qualquer pessoa que defina ou teste contratos JSON. Tudo roda no seu navegador, então a amostra e o schema que você cola permanecem no seu dispositivo.
Recursos
- Infere um JSON Schema a partir de uma amostra JSON colada com tipos corretos para objetos, arrays, strings, números, inteiros, booleanos e null
- Unifica os elementos de um array em um único schema items e emite items:{} para arrays vazios
- Botão para marcar cada propriedade como obrigatória, por objeto
- Botão additionalProperties:false para travar objetos apenas nas chaves conhecidas
- Inferência opcional de formato de string para valores email, date, date-time, uri e uuid
- Escolha a saída draft-07 ou 2020-12, que define o dialeto $schema
- Valide qualquer documento JSON contra um schema usando o Ajv com allErrors e ajv-formats
- Copie o schema gerado ou baixe-o como schema.json
Como usar Gerador de JSON Schema
- Escolha Gerar para montar um schema, ou Validar para verificar um documento.
- Em Gerar, cole uma amostra JSON e ative as opções de obrigatório, additionalProperties e formato.
- Escolha draft-07 ou 2020-12, depois copie ou baixe o schema.json resultante.
- Em Validar, cole um JSON Schema à esquerda e um documento JSON à direita.
- Leia o selo válido/inválido e a lista de erros, cada um com um caminho de instância.
Exemplo
Entrada
{
"id": 1,
"name": "Ada",
"email": "ada@example.com",
"tags": ["a", "b"]
}
Saída
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string", "format": "email" },
"tags": { "type": "array", "items": { "type": "string" } }
},
"required": ["id", "name", "email", "tags"]
}
Com a inferência de obrigatório e de formato ativada, a amostra produz um schema draft-07.
Erros comuns e solução de problemas
- O schema gerado não tem array required mesmo com cada chave presente. — Ative "Marcar todas as propriedades como obrigatórias"; por padrão o gerador infere apenas os tipos e deixa required vazio para que campos opcionais não fiquem sobre-restringidos.
- A validação reporta "Invalid JSON Schema" antes de verificar o documento. — O próprio painel do schema precisa ser um objeto JSON válido que o Ajv consiga compilar; corrija a sintaxe JSON ou as palavras-chave desconhecidas no schema primeiro.
- Um valor que parece uma data é tipado como uma string comum. — Ative "Inferir formatos de string". A detecção é conservadora e só adiciona um formato quando o valor da amostra corresponde ao padrão de email, date, date-time, uri ou uuid.
- Um schema 2020-12 é rejeitado por um validador que espera draft-07. — Mude o seletor de draft para combinar com o seu destino. Ele só altera a URL do $schema e as pequenas diferenças de dialeto entre os dois drafts.
Perguntas frequentes
- Qual draft de JSON Schema o gerador usa?
- Draft-07 por padrão, com uma opção para 2020-12. A escolha define a URL de dialeto $schema na saída e as pequenas diferenças entre os drafts; a estrutura inferida é, por outro lado, a mesma.
- Como as propriedades obrigatórias são decididas ao gerar um schema?
- Por padrão, nenhuma propriedade é marcada como obrigatória, então o schema aceita objetos parciais. Ative "Marcar todas as propriedades como obrigatórias" para adicionar cada chave de cada objeto ao seu array required.
- Como o validador reporta os erros?
- Ele executa o Ajv com allErrors ativado, então você obtém cada falha de uma vez. Cada erro mostra o caminho de instância JSON (como /items/0/id) e uma mensagem legível, incluindo chaves obrigatórias ausentes e propriedades adicionais inesperadas.
- O gerador infere formatos de string como email ou date?
- Sim, quando "Inferir formatos de string" está ativado. Ele verifica os valores de string da amostra contra padrões para email, date, date-time, uri e uuid e adiciona a palavra-chave format correspondente; valores que não correspondem a nenhum permanecem como strings comuns.
- Como ele infere o schema para arrays?
- Ele mescla os schemas de todos os elementos do array em um único schema items. Elementos de objeto mistos são mesclados propriedade por propriedade, uma chave ausente em qualquer elemento sai de required, e um array vazio vira items:{}.
- Minha amostra JSON ou meu schema é enviado para algum lugar?
- Não. A geração e a validação, incluindo o Ajv, rodam inteiramente no seu navegador, então a amostra, o schema e o documento que você cola são processados localmente e permanecem no seu dispositivo.
Ferramentas relacionadas
- Formatador de JSON — Embeleze, minifique e valide JSON com a localização dos erros.
- JSON para TypeScript — Gere interfaces de TypeScript a partir de uma amostra JSON.
- Visualizador de JSON — Visualizador de texto e árvore recolhível com expandir/recolher e caminhos de nós.
- JSON Diff — Compare dois documentos JSON e veja um diff estrutural do que mudou.
- JSON para código — Gere tipos de Go, Rust, Python, Java, Kotlin, C# e TypeScript a partir de JSON.
- Formatador de OpenAPI / Swagger — Formate e valide especificações OpenAPI / Swagger (JSON ou YAML) e conte caminhos e operações.
Todas as ferramentas de ArrayKit