Gerador de JSON Schema (draft 2020-12)

Gere um JSON Schema (draft 2020-12) a partir de um JSON de exemplo: tipos, chaves obrigatórias, uniões anuláveis, itens de arrays e formatos como email e date-time.

Executa totalmente no seu navegador. Seus dados nunca são enviados.

Ferramentas Relacionadas

Ver Todas

O que é Gerador de JSON Schema?

Infira um JSON Schema a partir de um documento de exemplo. O gerador descreve o tipo de cada propriedade, mescla os itens de arrays em um único schema items, lista as chaves obrigatórias, marca valores anuláveis com uniões de tipos e consegue detectar formatos comuns de string.

Como usar Gerador de JSON Schema

  1. Cole o JSON na caixa Entrada JSON, ou use Carregar exemplo ou Abrir arquivo.
  2. Opcionalmente, defina um Título do schema.
  3. Ative ou desative Marcar chaves como obrigatórias, Detectar formatos de texto e Proibir propriedades adicionais.
  4. A saída JSON Schema é atualizada enquanto você digita; use Copiar ou Baixar.

Exemplo

Entrada
{"id":1,"email":"a@b.co"}
Saída
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": [
    "id",
    "email"
  ]
}

Quando usar Gerador de JSON Schema

Use-o como ponto de partida para contratos de API, validação de configurações ou geração de formulários. Um schema inferido de um único exemplo só é tão bom quanto o exemplo: acrescente restrições como minimum, enum ou pattern à mão antes de usá-lo para validar dados reais.

Como funciona Gerador de JSON Schema

O exemplo é percorrido recursivamente e cada posição acumula os tipos JSON encontrados (integer, number, string, boolean, object, array, null). Inteiros misturados com decimais viram number; vários tipos viram um array type como ["object", "null"]. Em arrays de objetos, uma propriedade só é obrigatória se todos os objetos a tiverem. A detecção de formatos compara as strings com padrões de date-time, date, time, email, uuid, uri e ipv4 e só acrescenta format quando todos os valores correspondem. O resultado declara $schema: https://json-schema.org/draft/2020-12/schema.

Casos de Uso Comuns

  • Criar um schema inicial para o corpo de uma requisição de API
  • Validar arquivos de configuração com ajv ou em uma verificação de CI
  • Documentar o formato do payload de um webhook
  • Gerar formulários a partir de um schema em ferramentas que aceitam JSON Schema

Perguntas Frequentes

Qual draft é gerado?

O draft 2020-12, declarado com a palavra-chave $schema. As palavras-chave usadas (type, properties, required, items, format, additionalProperties) também são válidas no draft-07.

Como as propriedades opcionais são detectadas?

Só a partir de arrays de objetos: se uma chave falta em alguns elementos, ela fica fora de required. Em um único objeto, todas as chaves são obrigatórias quando a opção está ativada.

A validação de formato é aplicada?

No JSON Schema, format é uma anotação por padrão; validadores como o ajv precisam ter a validação de formatos ativada (ajv-formats).

Próximos passos recomendados

Explore mais categorias