Pular para o conteúdo principal

Gerar JSON Schema

Esta ferramenta infere automaticamente especificações de JSON Schema (Draft 2020-12) a partir de uma ou mais amostras de carga JSON. Ele traz heurísticas configuráveis para campos obrigatórios, alargamento de tipos entre amostras heterogêneas, detecção automática de formatos (email, date-time, uuid, uri), descoberta de enums e validação ao vivo de documentos contra o schema inferido na mesma página.

Só local
Entrada de exemplo (objeto ou array de exemplos)
0 B1 linhaLin. 1, Col. 1
JSON Schema gerado (Draft 2020-12)somente leitura
0 B1 linha

✓Teste de validação de ponta a ponta

Valide documentos JSON em tempo real com o esquema gerado.

Documento a validar
0 B1 linhaLin. 1, Col. 1
Relatório de conformidade com o esquema
Nenhum esquema gerado para validar.

Como funciona o Gerar JSON Schema?

Escrever definições de JSON Schema à mão é repetitivo, verboso e propenso a erros. O motor de inferência de schemas do ToolsByUs automatiza isso agregando estruturalmente, em múltiplas passadas, as suas amostras de entrada:

  • Inferência e alargamento de tipos: examina recursivamente os valores dos dados. Quando tipos escalares diferentes são observados entre as amostras para a mesma chave (por exemplo, integer e string), o alargamento de tipos produz um array de tipos permitidos type: ["integer", "string"] em vez de rejeitar variações válidas.
  • Heurísticas de campos obrigatórios: calcula razões de frequência. Propriedades presentes em 100% dos registros de amostra analisados entram no array da restrição required.
  • Correspondência de formato e semântica: compara campos de string com padrões RFC para date-time (ISO 8601), email (RFC 5322), uuid (RFC 4122/9562) e uri (RFC 3986).
  • Extração de enums: detecta valores repetitivos de baixa cardinalidade abaixo de um limite configurável (por exemplo, campos de status) e gera conjuntos de enum estritos.

O mais importante: o gerador inclui um Round-Trip Validator interativo — você pode colar qualquer carga candidata e testá-la imediatamente contra o schema gerado para verificar a conformidade.

Entrada de carga de exemplo

{"id": "usr_101", "email": "[email protected]", "active": true}

Exemplo de saída

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["id", "email", "active"],
  "properties": {
    "id": { "type": "string" },
    "email": { "type": "string", "format": "email" },
    "active": { "type": "boolean" }
  }
}

Quais opções e casos-limite o Gerar JSON Schema suporta?

Referência técnica e opções
ParâmetroTipoPadrãoComportamento e casos-limite
inferRequiredBooleanotrueMarca automaticamente as propriedades que aparecem em todas as amostras fornecidas como obrigatórias.
typeWideningBooleanotruePermite que campos com múltiplos tipos observados suportem qualquer um desses tipos em vez de forçar um único.
detectFormatsBooleanotrueInsere padrões de string em busca de formatos RFC: email, date-time, uuid e uri.
enumThresholdInteiro4Contagem máxima de valores únicos para classificar uma propriedade string/número como um conjunto enum fixo.
Rascunho do schemaPadrãoDraft 2020-12Emite um JSON Schema moderno e totalmente compatível com a especificação draft 2020-12.

Perguntas frequentes

Qual versão de JSON Schema esta ferramenta gera?

Esta ferramenta gera JSON Schema Draft 2020-12, a especificação estável mais recente recomendada pela organização JSON Schema. É compatível com bibliotecas de validação modernas em Python, Node.js, Go, Rust e Java.

Posso fornecer vários documentos de exemplo?

Sim! Você pode colar tanto um único objeto JSON quanto um array JSON com vários objetos. O gerador agrega os formatos das propriedades de todas as amostras para produzir schemas abrangentes, com tipos união e heurísticas precisas de campos obrigatórios.

Como funciona a validação ao vivo?

O painel inferior roda um validador de schema em tempo real contra o schema gerado no momento. Conforme você modifica os dados de exemplo ou as opções acima, o documento de teste é validado imediatamente, com os caminhos exatos das violações e as palavras-chave exibidos.

Meu schema ou meus dados de exemplo são transmitidos a algum servidor?

Não. Toda a inferência de schema e a validação são executadas 100% localmente no seu navegador, com zero requisições de rede, preservando total privacidade para schemas proprietários e logs de produção.

Por que um campo é marcado como required quando minha API o trata como opcional?

Porque a inferência só enxerga as amostras que você deu a ela, e uma propriedade presente em todas as amostras é assumida como required. Cole um array de documentos que inclua os casos em que o campo realmente está ausente e ele sai da lista de required automaticamente — essa é a forma mais rápida de ensinar ao gerador quais campos são opcionais.

Posso obter tipos TypeScript em vez de um schema?

Sim, mas em outra ferramenta: o conversor de JSON para TypeScript recebe o mesmo documento de exemplo e emite interfaces diretamente. Um schema é o artefato melhor quando você quer validação em runtime em várias linguagens; tipos gerados são melhores quando o único consumidor é uma base de código TypeScript e a verificação acontece em tempo de compilação.