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.
✓Teste de validação de ponta a ponta
Valide documentos JSON em tempo real com o esquema gerado.
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) euri(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
enumestritos.
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?
| Parâmetro | Tipo | Padrão | Comportamento e casos-limite |
|---|---|---|---|
| inferRequired | Booleano | true | Marca automaticamente as propriedades que aparecem em todas as amostras fornecidas como obrigatórias. |
| typeWidening | Booleano | true | Permite que campos com múltiplos tipos observados suportem qualquer um desses tipos em vez de forçar um único. |
| detectFormats | Booleano | true | Insere padrões de string em busca de formatos RFC: email, date-time, uuid e uri. |
| enumThreshold | Inteiro | 4 | Contagem máxima de valores únicos para classificar uma propriedade string/número como um conjunto enum fixo. |
| Rascunho do schema | Padrão | Draft 2020-12 | Emite 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.