Como gerar um JSON Schema
- Cole um exemplo de JSON representativo. Arrays com vários itens dão os melhores resultados, porque seus itens são mesclados em um único schema.
- Escolha a versão do schema (draft 2020-12 ou draft-07) e defina se as propriedades devem ser obrigatórias, se os formatos devem ser detectados e se propriedades extras devem ser proibidas.
- Copie ou baixe o schema e depois refine-o manualmente – por exemplo, adicionando descrições, enums ou valores mínimos e máximos.
O que o gerador deduz
| Exemplo de JSON | Schema |
|---|---|
"ada@example.com" | {"type": "string", "format": "email"} |
"2026-05-01T10:00:00Z" | formato date-time (também date, time, uri, uuid, ipv4) |
42 / 4.5 | "integer" / "number" |
| uma chave presente em todos os objetos | listada em required |
| uma chave ausente em alguns itens do array | opcional (fora de required) |
[1, "a", null] | "items": {"type": ["string", "integer", "null"]} |
| objetos misturados com valores simples | anyOf com um schema para cada tipo |
O que é JSON Schema?
JSON Schema é um vocabulário para descrever e validar a estrutura de dados JSON: quais propriedades existem, qual é o tipo de cada uma, quais são obrigatórias e quais valores são permitidos. Ele é usado em contratos de API no OpenAPI, arquivos de configuração, geração de formulários e na validação da saída estruturada de modelos de IA. A versão atual é a 2020-12; a draft-07 ainda é suportada por muitas ferramentas mais antigas. A especificação é publicada em json-schema.org.
Como refinar o schema gerado
- Adicione
titleedescriptionpara documentar o significado de cada campo. - Restrinja valores com
enum,minimum,maximum,maxLengthoupattern. - Marque Não permitir propriedades extras (
additionalProperties: false) para rejeitar chaves desconhecidas. - Valide dados com o Ajv em JavaScript ou com o pacote
jsonschemaem Python.
Perguntas frequentes
Qual versão do JSON Schema devo usar?
Use o draft 2020-12 em projetos novos – é a versão atual e a base do OpenAPI 3.1. Escolha o draft-07 se o seu validador ou suas ferramentas ainda não suportam a 2020-12.
Por que todas as minhas propriedades são obrigatórias?
Com um único objeto de exemplo, todas as propriedades estão presentes, então todas são marcadas como obrigatórias. Use um array com vários exemplos variados ou desative Marcar propriedades como obrigatórias.
O gerador consegue detectar enums ou intervalos?
Não. Um único exemplo não mostra quais valores são permitidos em geral, então enums, valores mínimos e máximos e padrões precisam ser adicionados manualmente.
Como validar um JSON com o schema?
Use uma biblioteca de validação como Ajv para JavaScript ou jsonschema para Python. Muitos editores de código também validam um arquivo JSON com base no schema indicado na propriedade $schema.