Gerador de JSON Schema
Cole JSON à esquerda — o schema aparece à direita, enquanto você digita.
JSON Schema
Como usar
- Cole um documento JSON de exemplo à esquerda — objeto, array ou valor único. O schema é gerado ao vivo, enquanto você digita.
- Escolha a versão do Schema (Draft 7 ou 2020-12) e alterne a detecção de formatos de string, os valores de exemplo e se toda propriedade é obrigatória.
- Copie ou baixe o resultado como schema.json. Nada é enviado: o documento inteiro é analisado no seu navegador.
Exemplo
JSON de exemplo
{ "id": 42, "nome": "Ana Clara", "email": "ana@exemplo.com.br", "ativo": true, "tags": ["admin", "editora"], "perfil": { "pontuacao": 4.5, "verificado": false } }
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "id": { "type": "integer" }, "nome": { "type": "string" }, "email": { "type": "string", "format": "email" }, "ativo": { "type": "boolean" }, "tags": { "type": "array", "items": { "type": "string" } }, "perfil": { "type": "object", "properties": { "pontuacao": { "type": "number" }, "verificado": { "type": "boolean" } }, "required": ["pontuacao", "verificado"], "additionalProperties": false } }, "required": ["id", "nome", "email", "ativo", "tags", "perfil"], "additionalProperties": false }
Gerado com as regras padrão: Draft 7, formatos ativados, todas as propriedades obrigatórias. A string de e-mail recebe uma dica de formato; o inteiro permanece exato, e o perfil aninhado vira seu próprio schema de objeto.
Regras, limites e problemas conhecidos
- Os tipos são inferidos do exemplo: object, array, string, integer, number, boolean, null. Itens de array são mesclados — objetos entre elementos unem suas chaves, e uma chave ausente em alguns elementos não é marcada como obrigatória.
- Tipos mistos dentro de um mesmo array viram um anyOf; um array vazio gera type: array sem items (o tipo do elemento é desconhecido a partir do exemplo).
- Formatos de string (email, UUID, URI, date, date-time) são deduzidos do valor — são dicas, não validação de todos os valores possíveis. Desative-os com o interruptor.
- Chaves duplicadas mantêm o último valor, como o JSON.parse faz. Apenas JSON estrito (RFC 8259): comentários, vírgulas finais e aspas simples são rejeitados com uma mensagem de linha/coluna.
- O schema é JSON padrão, então suas palavras-chave e saída nunca mudam com o idioma da página. Valores de exemplo são reconstruídos nativamente, então um inteiro extremo (por exemplo 12345678901234567890) pode ser arredondado apenas no exemplo.
- Limites: 1.000.000 de caracteres e 512 níveis de aninhamento. Acima de qualquer um deles você recebe um erro, nunca um resultado truncado. O envio de arquivo lê apenas o arquivo local — nada é enviado.
Ferramentas relacionadas
O que as pessoas costumam precisar depois de ter um schema.