Verificar campos obrigatórios
Descreva um pequeno contrato com required e properties e compare respostas API. Um campo presente com null pode exigir um tipo anulável; não está simplesmente ausente.
Compare um documento JSON com um esquema diretamente no navegador. Os erros indicam o caminho, a regra em causa e a origem do problema.
Verifique dados JSON face às restrições suportadas de um esquema e localize erros por caminho e palavra-chave. O primeiro campo contém dados e o segundo o esquema: dois JSON válidos não demonstram cumprimento do contrato. A verificação é local e não recupera esquemas remotos. Esta implementação cobre um subconjunto explícito de JSON Schema 2020-12, não todas as extensões.
São suportados type, const, enum, limites numéricos e multipleOf. Strings usam minLength, maxLength e pattern. Arrays podem usar minItems, maxItems, uniqueItems e um esquema items único. Objetos suportam properties, required, additionalProperties, minProperties e maxProperties. Também se avaliam allOf, anyOf, oneOf e not.
Todo o esquema é inspecionado antes dos dados, incluindo ramos não utilizados. Restrições suportadas mas mal definidas geram erros de esquema. $ref, $dynamicRef, prefixItems, contains, patternProperties, dependências condicionais, regras unevaluated e if/then/else não estão implementados. A presença gera um diagnóstico explícito em vez de um êxito enganador.
format não valida emails, URLs ou datas neste motor. Anotações como title e description não verificam valores. Se precisar de vocabulários ou funções adicionais, escolha um validador apropriado em vez de remover regras para obter um resultado positivo.
Os comprimentos contam pontos de código Unicode, não unidades UTF-16 nem caracteres visuais combinados. const, enum e uniqueItems ignoram a ordem de propriedades dos objetos, mantendo a ordem dos arrays e tipos escalares. Os números têm precisão JavaScript: valores grandes e cálculos decimais exigem uma estratégia adequada na aplicação.
Cole valores no documento JSON e regras no campo de esquema. O botão de exemplo mostra a separação sem serviços externos.
Reveja resumo, caminho e regra de cada linha. Um caminho iniciado por $schema indica um problema na definição do contrato.
Altere dados incorretos ou uma regra mal definida. Mudar um campo oculta resultados anteriores; valide novamente antes de concluir.
Descreva um pequeno contrato com required e properties e compare respostas API. Um campo presente com null pode exigir um tipo anulável; não está simplesmente ausente.
Use uniqueItems para detetar objetos equivalentes mesmo quando as propriedades são escritas por outra ordem.
Distinga erros dos dados, esquemas inválidos e palavras-chave não suportadas. Nos últimos casos, o contrato completo não foi verificado.
O bloco apresenta ambas as entradas: coloque document no primeiro campo e schema no segundo. O resumo confirma que 😀 respeita comprimento entre 1 e 1.
Entrada
{
"document": "😀",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1
}
}Resultado
{
"valid": true,
"issues": []
}id contém a string "1", enquanto o esquema exige integer. O resumo indica type em $.id. O valor não é convertido automaticamente em número.
Entrada
{
"document": {
"id": "1"
},
"schema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer"
}
},
"additionalProperties": false
}
}Resultado
{
"valid": false,
"issues": [
{
"path": "$.id",
"keyword": "type"
}
]
}Não. Não se avaliam referências locais nem remotas. Geram um diagnóstico explícito; não é carregado qualquer ficheiro ou URL de esquema.
O motor não trata format como uma asserção de validação. Use restrições suportadas ou um validador com o vocabulário de formatos exigido pelo contrato.
Um emoji com um ponto de código, como 😀, conta um. Modificadores, marcas combinadas e sequências de junção podem contar vários pontos apesar de parecerem um só carácter.
A ordem das propriedades não altera o valor de um objeto JSON. const, enum e uniqueItems usam igualdade estrutural. A ordem dos elementos de arrays continua significativa.
Ferramentas relacionadas
Ferramentas semelhantes ou complementares a esta.
Verifique uma descrição de API em JSON ou YAML sem a enviar para um servidor.
Gere um JSON Schema a partir de um exemplo JSON, localmente no navegador.
Formate, minifique e valide um documento JSON para o tornar mais legível ou compacto.