Valide JSON com um esquema JSON
Verifique um documento JSON estrito com um subconjunto local e limitado de JSON Schema draft-07.
Espaço de trabalho da ferramenta
Validar um documento JSON com um esquema
É necessário JavaScript para executar esta ferramenta local de validação.
Insira um objeto JSON com o subconjunto aceito do draft-07.
0 / 100.000 unidades de código UTF-16
Insira o documento JSON que será validado pelo esquema.
0 / 250.000 unidades de código UTF-16
A validação é executada localmente no seu navegador. Nenhuma entrada é enviada a um servidor.
Insira um esquema e um documento JSON; depois, escolha Validar.
Resultado da validação
Válido
Válido para o subconjunto aceito do draft-07.
Não conforme
O documento não corresponde ao esquema.
Esta primeira versão informa o primeiro erro; não lista todas as incompatibilidades.
Entrada JSON inválida
O esquema ou o documento não é JSON válido.
Esta primeira versão informa o primeiro erro; não lista todas as incompatibilidades.
Esquema
Documento
Esquema inválido
O esquema JSON é inválido.
Esquema não aceito
Este esquema JSON usa um recurso não aceito.
Validação interrompida
Não foi possível concluir a validação. Você pode tentar novamente.
Keywords aceitas, referências e limites
Sobre este validador
Esta ferramenta aceita esquemas objeto JSON que declarem http://json-schema.org/draft-07/schema#. Ela implementa um subconjunto do draft-07.
Keywords aceitas
$schema, title, description, type, properties, required, items, additionalProperties, enum, const, minimum, maximum, exclusiveMinimum, exclusiveMaximum, minLength, maxLength e pattern.
Keywords não aceitas
As demais keywords são rejeitadas, incluindo $ref, definitions, format, allOf, anyOf, oneOf, not, dependencies e keywords condicionais.
Os padrões usam uma gramática restrita: letras e dígitos ASCII, pontuação regex escapada, classes de caracteres simples, âncoras de início/fim e no máximo um quantificador ? ou {mínimo,máximo} (máximo 32).
Os esquemas nunca são baixados. Referências remotas como $ref não são seguidas e não são aceitas.
Limites de recursos
Esquema: 100.000 unidades de código UTF-16; profundidade do parser 60, 5.000 nós, 1.000.000 unidades de trabalho do parser e 100 diagnósticos. O preflight permite 5.000 visitas estruturais, profundidade 40, 5.000 nomes, 50 padrões de até 128 unidades cada e 100 membros por enum.
Documento: 250.000 unidades de código UTF-16; profundidade do parser 100, 25.000 nós, 1.000.000 unidades de trabalho do parser e 100 diagnósticos. Strings verificadas com pattern têm limite de 10.000 unidades de código.
A validação completa tem 5.000.000 unidades de trabalho, 8.192 unidades de código variável por diagnóstico e limite de 8 segundos. A interface não permite aumentar esses limites.
Valide um documento com um esquema
Insira um objeto JSON Schema em Esquema JSON e o valor JSON a verificar em Documento JSON; depois, escolha Validar. Primeiro, as duas entradas são analisadas como JSON estrito, o esquema completo é verificado e, então, o documento é avaliado. O primeiro erro é exibido; esta primeira versão não lista todas as incompatibilidades. Um resultado positivo significa que o documento é válido para o subconjunto aceito por esta ferramenta, não para todos os recursos do draft-07.
Escolha Carregar exemplo para preencher os dois editores com este par funcional. Você pode alterá-lo; a validação só começa quando escolher Validar.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": { "type": "string", "minLength": 1 },
"active": { "type": "boolean" }
},
"required": ["name"],
"additionalProperties": false
}
{
"name": "Ada",
"active": true
}
Subconjunto aceito do draft-07
O esquema raiz deve ser um objeto JSON e declarar em $schema o valor exato
http://json-schema.org/draft-07/schema#. Estas keywords e formas são aceitas:
$schema,titleedescriptioncom valores de texto.typecomo um tipo ou uma lista não vazia e sem duplicatas:null,boolean,object,array,number,integeroustring.propertiescomo um objeto cujos valores são esquemas;requiredcomo uma lista de nomes de propriedades únicos; eadditionalPropertiescomo booleano ou esquema.itemscomo um esquema. Listas de esquemas emitemsnão são aceitas.enumcomo uma lista não vazia de até 100 valores JSON econstcomo qualquer valor JSON.minimum,maximum,exclusiveMinimumeexclusiveMaximumcomo números finitos.minLengthemaxLengthcomo inteiros não negativos. O comprimento de texto é contado em pontos de código Unicode.patterncomo texto que use a gramática restrita descrita abaixo.
properties descreve como verificar uma propriedade quando ela existe; não a
torna obrigatória. Apenas os nomes em required precisam estar presentes. Uma
propriedade ausente e uma propriedade com valor null são diferentes:
required verifica a presença e type verifica o valor.
additionalProperties aceita, rejeita ou verifica outras propriedades; nunca
as remove ou altera no documento.
Keywords e padrões rejeitados
Qualquer keyword fora da lista acima é rejeitada antes da validação do
documento. Isso inclui $ref, mesmo quando aponta para uma definição local,
além de definitions, format, allOf, anyOf, oneOf, not,
dependencies e as keywords condicionais if, then e else. Referências
não são resolvidas, e a ferramenta nunca baixa um esquema nem consulta um
serviço remoto.
Os padrões são limitados a letras e dígitos ASCII, pontuação de expressão
regular escapada, classes de caracteres simples e ^ ou $ apenas no início
ou no fim. Cada padrão aceita no máximo um quantificador ? ou um quantificador
limitado {mínimo,máximo}, com máximo de 32. Outros recursos de expressão
regular são rejeitados. Um padrão pode ter até 128 unidades de código, e uma
string do documento verificada por padrão pode ter até 10.000 unidades.
JSON estrito e precisão numérica
Os dois editores exigem JSON estrito. Comentários, vírgulas finais, chaves de objeto duplicadas e conteúdo após o valor são erros. Números que não podem ser representados com segurança como números JavaScript são rejeitados e não geram um resultado de conformidade. A validação usa o valor JSON analisado; não é possível distinguir grafias numéricas depois que a precisão se perde.
Limites de entrada e operação
O editor de esquema aceita até 100.000 unidades de código UTF-16. A análise do
esquema é limitada a profundidade 60, 5.000 nós JSON, 1.000.000 unidades de
trabalho do parser e 100 diagnósticos. O preflight permite 5.000 visitas
estruturais, profundidade 40, 5.000 nomes entre properties e required, 50
padrões de até 128 unidades de código cada e 100 valores em cada enum.
O editor do documento aceita até 250.000 unidades de código UTF-16. A análise
do documento é limitada a profundidade 100, 25.000 nós JSON, 1.000.000 unidades
de trabalho do parser e 100 diagnósticos. Strings verificadas com pattern
aceitam até 10.000 unidades de código. A validação completa tem 5.000.000
unidades de trabalho, 8.192 unidades de código variável por diagnóstico e um
limite de 8 segundos. Ao atingir um limite, a validação para sem declarar o
documento válido ou não conforme.
Processamento local
A análise e a validação são executadas em um Worker local no navegador. Nenhuma entrada é enviada ao servidor da aplicação e esquemas não são baixados. O texto não é armazenado na URL, em cookies nem no armazenamento do navegador. Ao editar uma entrada, o resultado anterior é removido e o trabalho associado ao texto antigo é interrompido. Cancelar interrompe uma operação ativa e mantém as duas entradas; Limpar ambos as apaga explicitamente.