Validador e gerador de JSON Schema
Valide JSON contra um schema ou infira um schema de dados de exemplo
Sobre esta ferramenta
Duas direções da mesma disciplina: cole um JSON de exemplo e receba um schema draft-07 inferido dele, ou cole dados mais um schema e veja cada violação listada com seu caminho JSON. A validação roda sobre o Ajv — o mesmo motor que a maioria dos serviços Node usa — então o que passa aqui passa no CI.
A inferência pensa em produção: chaves de objeto viram propriedades tipadas e entradas em required, arrays mesclam as formas de todos os seus membros, inteiros são distinguidos de floats, e chaves presentes em só alguns membros de um array são corretamente deixadas fora de required. O resultado é um ponto de partida que você aperta com formatos, faixas e padrões.
Respostas de API e arquivos de configuração são exatamente os dados que você menos quer em um servidor de terceiros. Inferência e validação rodam inteiramente no seu navegador.
Perguntas frequentes
- Qual draft do JSON Schema é suportado?
- A inferência emite draft-07, o draft mais amplamente suportado por editores e validadores. A validação aceita draft-07 e os drafts anteriores que o Ajv entende em modo não estrito; palavras-chave de 2019-09/2020-12 em geral também funcionam, já que palavras-chave desconhecidas são ignoradas em vez de fatais.
- O que significa o $ nos caminhos das violações?
- É a raiz do documento, no estilo JSONPath: $.age significa a propriedade age de nível superior, $.items.2.name o name do terceiro elemento do array. Um caminho vazio ($) significa que a violação é sobre a raiz do documento em si — tipo errado, ou uma propriedade obrigatória ausente.
- Por que o schema inferido é mais estrito ou mais frouxo do que eu esperava?
- Ele descreve exatamente a amostra que você deu: campos presentes em todo lugar viram obrigatórios, e só os tipos observados são permitidos. Alimente-o com uma amostra mais variada (um array de objetos representativos) para um schema mais geral, e depois ajuste na mão — a inferência não pode conhecer a intenção.
- A validação suporta format, pattern e outras palavras-chave de restrição?
- Palavras-chave estruturais (type, required, properties, items, enum, minimum, pattern…) são totalmente aplicadas. Strings de format como "email" ou "date-time" não são asseridas — isso espelha a especificação do JSON Schema, em que format é anotação por padrão, e evita falsa confiança.