Saltar para o conteúdo
4all.tools

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.

Amostra 1

1 amostra(s).

Insira JSON em cada amostra.

    Opções do esquema

    A saída usa um vocabulário fixo e limitado de draft-07 com uniões de tipos e esquemas inline. Objetos permitem propriedades adicionais. Não são inferidos formatos, enums nem relações entre campos.

    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.