Gere JSON Schema a partir de documentos JSON completos
Gere um JSON Schema a partir dos seus exemplos. Revise os campos obrigatórios, verifique as amostras e baixe o esquema.
Espaço de trabalho da ferramenta
Gerador de JSON Schema
Ative JavaScript para inferir um esquema localmente no navegador.
Cada editor contém um documento JSON completo. Um array na raiz continua sendo um array. Os exemplos orientam o esquema; não comprovam as regras do seu domínio.
Até 20 amostras; 250.000 unidades UTF-16 por amostra e 500.000 no total; 1.000.000 bytes por arquivo; profundidade 20; 50.000 nós fonte no total; 2.000 nós inferidos; esquema de até 100.000 unidades UTF-16. Os orçamentos de trabalho podem acabar antes.
O processamento ocorre no navegador. As amostras não são enviadas nem salvas.
1 amostra(s).
Insira JSON em cada amostra.
Diagnósticos adicionais foram omitidos ao atingir um orçamento de diagnósticos.
Este navegador não pode iniciar um Worker. Use um navegador compatível para processar as amostras localmente.
Campos e tipos inferidos
Null é um valor presente; não torna um campo opcional. A presença é medida apenas entre objetos nessa localização.
Os ramos de objeto e array são combinados. O esquema pode aceitar combinações adicionais porque não infere relações entre campos.
Nenhum candidato de formato nesta página.
As sugestões exigem pelo menos duas strings, cada uma com até 1.024 unidades UTF-16, e nenhum contraexemplo. Exemplos duplicados contam como observações. Os formatos não são emitidos nem validados na v1.
O esquema não aceita todas as amostras. A cópia e o download incluem o esquema completo com suas regras de campos obrigatórios manuais.
Compatibilidade das amostras
Cópia manual
Selecione a saída completa e copie com o teclado. Feche esta ajuda para voltar ao botão Copiar.
Copie o esquema e cole manualmente no validador. Estes links não transferem amostras nem o esquema.
Analise documentos antes de gerar
Cole um documento JSON completo em cada editor ou abra um arquivo local .json UTF-8. Adicione até vinte amostras, pressione Analisar amostras, revise os campos e escolha Gerar esquema.
Todas as amostras precisam ser JSON estrito válido. Corrija editores vazios, chaves duplicadas, comentários, JSONC/JSON5 ou números que percam precisão antes de continuar; a ferramenta não ignora amostras com erro.
Um array em um editor conta como uma amostra, e todos os seus elementos contribuem para o esquema. Vários editores produzem um esquema comum para seus documentos. Uma amostra também pode ser uma string, número, booleano ou null.
Exemplo de array:
[{"id":1},{"id":2,"nombre":"Ana"}]
Com os campos obrigatórios inferidos, o array completo satisfaz este esquema:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"nombre": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": true
}
}
Decida quais campos são obrigatórios
No exemplo, id aparece nos dois objetos e é considerado obrigatório. nombre aparece em apenas um e fica opcional. Se marcar nombre como obrigatório, o primeiro objeto deixa de passar: o relatório aponta para /0, com a regra required em /items/required. O esquema ainda pode ser exportado, mas haverá um aviso de que algumas amostras não o satisfazem.
Uma propriedade ausente e uma propriedade com valor null são casos diferentes. Em [{"x":null},{"x":"a"},{}], x é opcional e aceita null ou string. Ao remover o objeto vazio, x passa a ser obrigatório e continua aceitando null.
Os campos obrigatórios são deduzidos dos exemplos, não das regras da sua aplicação. Para objetos aninhados, apenas os que estão na mesma localização são comparados. Revise as escolhas antes de usar o esquema. Restaurar os campos inferidos remove todas as escolhas manuais, inclusive as de outras páginas.
Um array vazio [] gera type: "array" com items: {}, pois não informa o tipo dos elementos. Um objeto vazio {} não revela propriedades. Inteiros e frações são combinados como number; outros tipos misturados formam uma união type. Por isso, o esquema pode aceitar combinações que não aparecem nos exemplos.
O que o esquema gerado verifica
A saída usa JSON Schema draft-07. Ela descreve tipos, propriedades de objetos, campos obrigatórios e elementos de arrays. Os objetos aceitam propriedades extras por meio de additionalProperties: true. Você pode acrescentar title e description na raiz.
A ferramenta não deduz listas de valores permitidos, intervalos numéricos, padrões, referências, tuplas ou condições com anyOf, oneOf e allOf. Acrescente essas regras se a aplicação precisar delas.
As sugestões de formato podem identificar e-mails ASCII, URIs HTTP(S) absolutas e datas escritas como YYYY-MM-DD. Ative-as antes de analisar. Pelo menos duas strings precisam corresponder; um contraexemplo ou uma string com mais de 1.024 unidades UTF-16 remove a sugestão. As sugestões não acrescentam uma regra format ao esquema, e a verificação integrada não valida formatos.
Exportação e limites
Copiar ou baixar inclui o esquema inteiro, independentemente da página de campos aberta. O download é schema.json, com tipo MIME application/schema+json, em UTF-8 sem BOM. Você pode escolher indentação de dois ou quatro espaços. As quebras de linha são LF, sem quebra final. Se a área de transferência falhar, copie pelo campo de saída completa.
| Limite | Máximo |
|---|---|
| Amostras | 20 |
| Arquivo | 1.000.000 bytes |
| Texto por amostra / total | 250.000 / 500.000 unidades UTF-16 |
| Contêineres aninhados por amostra | 20 níveis |
| Valores por amostra / total | 25.000 / 50.000 |
| Propriedades inferidas | 2.000 |
| Texto do esquema | 100.000 unidades UTF-16 |
| Título / descrição | 256 / 2.000 unidades UTF-16 |
| Tempo de análise ou geração | 8 segundos |
Amostras complexas ou nomes de campo muito longos podem atingir outros limites de processamento antes. Uma operação com erro ou cancelada não fornece esquema parcial. A lista de campos mostra até 25 entradas por página.
Os arquivos precisam usar UTF-8. Um BOM inicial é removido com aviso; um segundo é inválido. Editar amostras ou mudar sugestões de formato exige uma nova análise e redefine os campos obrigatórios escolhidos. Mudar campos obrigatórios ou opções do esquema exige gerar a saída novamente.
O processamento usa um Worker local e requer JavaScript. As amostras não são enviadas nem salvas. Para usar o validador relacionado, copie e cole o esquema; os links não transferem seus dados.