Pular para o conteúdo

Validador de JSON Schema

JSON Schema Validator

Valida um documento contra um JSON Schema e informa cada falha com o caminho da instância.

Valida um documento JSON contra um JSON Schema, draft 2020-12, inteiramente no navegador. Ele passa em todos os 1.299 testes obrigatórios da JSON-Schema-Test-Suite oficial, e cada falha é relatada com a localização da instância e a palavra-chave que a produziu.

🔒 Roda inteiramente no seu navegadorjson-schemavalidatejson

Esquema (draft 2020-12)

Dados para validar

Resultado

Veredito

Inválido

Falhas

3

Local na instânciaPalavra-chaveProblema
/portmaximumdeve ser no máximo 65535
/tagsuniqueItemsos itens 0 e 1 são iguais
/debugfalsenunca é válido aqui (o esquema é false)
A validação roda inteiramente nesta aba contra o JSON Schema draft 2020-12, e passa nos 1.299 testes obrigatórios do JSON-Schema-Test-Suite oficial. $ref é resolvido dentro do esquema, dos documentos adicionais colados e dos metaesquemas 2020-12 que vêm junto: referências remotas são recusadas em vez de buscadas, então os resultados nunca dependem da rede. format é reportado como anotação e não imposto, que é o padrão do 2020-12.

Como usar

  1. Cole o esquema e os dados

    As duas caixas revalidam enquanto você digita. Um erro de sintaxe em qualquer uma é relatado separadamente, então você sabe qual lado está quebrado.

  2. Adicione os documentos referenciados se você tem `$ref`

    Ative Esquemas adicionais e cole-os: um documento ou um array deles, cada um com seu `$id`. Nada é buscado pela rede, então um esquema dividido em vários arquivos ainda valida aqui.

  3. Leia a tabela de falhas

    Cada linha dá o caminho da instância, a palavra-chave que falhou e o que ela queria. Copie o conjunto inteiro como JSON se for colar em uma issue.

Perguntas frequentes

Por que meu `"format": "email"` não é aplicado?

Porque o 2020-12 faz de `format` uma anotação por padrão: um validador pode relatá-lo e não checá-lo, e a maioria faz exatamente isso. Se você precisa que seja aplicado, use `pattern`, ou um validador configurado com o vocabulário de asserção de formato.

Um `$ref` remoto não pôde ser resolvido.

Referências remotas são recusadas, não buscadas. Um validador que sai para a rede dá resultados que dependem do DNS e do uptime de outra pessoa, e conta a essa pessoa quais esquemas você está validando. Cole o documento referenciado na caixa de esquemas adicionais em vez disso.

Quais drafts são suportados?

2020-12. Um esquema Draft-07 muitas vezes valida mesmo assim — a maioria das palavras-chave não mudou —, mas `definitions` não é `$defs`, `items` significa outra coisa para tuplas e `$recursiveRef` não existe mais. Confira a linha `$schema` antes de presumir.

Por que tantos erros para um único campo errado?

Porque uma falha dentro de `anyOf`, `oneOf` ou `allOf` relata cada ramo que falhou: é o que a especificação diz que uma unidade de saída contém. A primeira linha normalmente é a que você quer; o resto explica por que nenhuma alternativa casou também.

Pode receber de

Em seguida

Estas aceitam o que esta ferramenta produz, então o resultado pode ir direto.