← Voltar à ferramenta JSON

Validador de JSON Schema

Última atualização: 2 de outubro de 2026

Verifique um documento JSON contra um JSON Schema e veja cada restrição não atendida com o caminho onde falha. Tanto o documento quanto o esquema são analisados e verificados no navegador.

Roda no navegador Sem upload Erros por caminho Palavras-chave do Draft 2020-12 Código aberto (MIT)

O que é verificado

Um JSON Schema descreve a forma que um documento pode ter: quais propriedades existem, de que tipo são e quais faixas e padrões são aceitáveis. Esta página verifica um documento contra um esquema e lista todos os pontos em que ele falha, cada um com um caminho para você localizá-lo.

As palavras-chave suportadas são: type, const, enum, required, properties, additionalProperties, minProperties, maxProperties, items (um esquema, ou uma tupla de esquemas), minItems, maxItems, uniqueItems, minLength, maxLength, pattern, minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, allOf, anyOf, oneOf, not e ponteiros $ref locais dentro do mesmo esquema.

O que deliberadamente não faz

Como ler os erros

Cada falha é informada em um caminho: $ é a raiz do documento, um ponto entra em uma propriedade e um colchete indexa um array. required é informado no objeto que deveria conter a propriedade —a restrição vive no objeto, não na propriedade ausente— com o nome da propriedade na mensagem. anyOf e oneOf são informados uma vez, na instância que falhou, em vez de um por ramo; uma parede de erros de ramos esconderia o real.

Perguntas frequentes

Quais palavras-chave do JSON Schema são suportadas?

type, const, enum, required, properties, additionalProperties, minProperties, maxProperties, items (um único esquema ou uma tupla de esquemas), minItems, maxItems, uniqueItems, minLength, maxLength, pattern, minimum, maximum, exclusiveMinimum, exclusiveMaximum, multipleOf, allOf, anyOf, oneOf, not e $ref locais.

O que deliberadamente não é suportado?

$ref remotos (apenas ponteiros dentro do mesmo esquema são resolvidos), o format como asserção, patternProperties, unevaluatedProperties, if/then/else e dependentSchemas. Um esquema que os use ainda verificará as palavras-chave acima, mas as não implementadas não são aplicadas, então não leia um «válido» aqui como conformidade completa para um esquema construído sobre elas.

A validação é feita em um servidor?

Não. Tanto o documento quanto o esquema são analisados com JSON.parse no seu navegador e verificados na memória. Nada é enviado e a página funciona sem conexão.

Por que o erro de propriedade obrigatória é informado no caminho do pai?

Porque a restrição está ali. O JSON Schema aplica required ao objeto, não à propriedade ausente, então o erro é informado no caminho do objeto —por exemplo $ e não $.name— com o nome da propriedade na mensagem.

Como anyOf e oneOf são informados?

Com um único erro na instância que falhou, em vez de um por ramo. anyOf falha quando nenhum ramo corresponde; oneOf falha quando o número de ramos correspondentes não é exatamente um, e a mensagem diz quantos corresponderam. Informar os erros internos de cada ramo enterraria o real.

Ele diz se o esquema está errado, ou só verifica o documento?

Ele verifica o documento contra o esquema. Se o esquema não for JSON válido, isso é informado separadamente. Ele não valida o esquema contra o metaesquema do JSON Schema, então um esquema sintaticamente correto mas logicamente errado pode simplesmente não corresponder a nada.

Precisa comparar dois documentos? Comparar JSON faz isso. Encontrou um bug? Fale conosco.