Pular para o conteudo principal
CuteJSON
↑↓ Navegar Enter Selecionar Esc Fechar

Como validar JSON contra um JSON Schema

Publicado 2 min de leitura Por Akash Kinkar Pandey

Um schema so e util se voce pode realmente verificar um documento contra ele e obter uma resposta clara sobre o que falhou e onde. Este validador cobre o subconjunto de JSON Schema que o gerador deste site escreve, entao um schema produzido la e garantido de poder ser aplicado nesta pagina.

Usar o validador de JSON Schema

Cole um schema a esquerda e o documento a verificar a direita, depois pressione Validar. Carregar a amostra preenche ambos os paineis de uma vez, entao voce pode editar apenas o documento e ver imediatamente o que o schema rejeita.

Dado o schema

{
  "type": "object",
  "properties": {
    "age": {"type": "integer", "minimum": 0},
    "name": {"type": "string", "minLength": 2}
  },
  "required": ["age", "name"]
}

e o documento {"age": -5, "name": "A"}, a validacao reporta dois problemas em uma passagem: minimum falhou em /age porque -5 esta abaixo de 0, e minLength falhou em /name porque `“A” tem um unico caractere. Cada problema e reportado, nao apenas o primeiro, e cada um carrega a palavra-chave exata que o rejeitou e um JSON Pointer para o valor, entao um problema e um caminho que voce pode percorrer em vez de uma frase que voce precisa decodificar.

O que e suportado

Type, enum e const; as palavras-chave properties, patternProperties, additionalProperties e required; comprimento, padrao e formato em strings; limites e multiplos em numeros; items e uniqueItems em arrays; os combinadores allOf, anyOf, oneOf e not; if-then-else; e referencias locais via $defs ou definitions. Uma palavra-chave que este validador nao implementa e tratada como uma anotacao e ignorada, que e exatamente o que a especificacao de JSON Schema permite que um validador faca com uma palavra-chave nao reconhecida.

O que para toda a verificacao

Um $ref que nao nomeia nada dentro do schema, ou um que aponta completamente para fora, para a validacao completamente e indica isso. Reportar um resultado de sucesso ou falha para um schema que nao pode ser totalmente resolvido seria uma mentira disfarçada de resposta, entao a ferramenta se recusa a dar uma.

Trocar lados

Como os paineis de schema e documento sao visualmente semelhantes, Trocar lados move o schema atual para o documento e vice-versa, util se voce os colou nas caixas erradas ou quer verificar rapidamente um schema para sanidade basica contra ele mesmo.

Voltar a todos os posts