Como usar
- Cole um exemplo de JSON ou clique em Carregar exemplo.
- Defina o título do schema raiz.
- Copie ou baixe o schema e depois adicione restrições como formatos, padrões e intervalos.
Opções explicadas
- Nome do tipo raiz
- Usado como title do schema.
Exemplos
{"id": 1, "email": null} vira um schema com "id": {"type": "integer"}, "email": {"type": "null"} e as duas chaves em required.
Exemplo
Dois registros de usuário, em que só o primeiro tem e-mail e manager às vezes é null:
[
{ "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
{ "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]
Com o nome do tipo raiz definido como User, o schema gerado é:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "User",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string" },
"tags": { "type": "array", "items": { "type": "string" } },
"manager": {
"anyOf": [
{ "type": "null" },
{ "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
]
}
},
"required": ["id", "name", "tags", "manager"]
}
}
email fica de fora de required porque o segundo registro não o tem, e manager aceita null ou um objeto porque os dois aparecem na amostra. Quanto mais variados forem os seus dados de amostra, mais preciso será o schema — cole vários registros em vez de um só.
Usos comuns
Validar a entrada de uma API. Carregue o schema em um validador como Ajv (JavaScript) ou jsonschema (Python) e rejeite as requisições que não combinarem.
Documentar uma API. Cole as propriedades em uma seção components.schemas do OpenAPI como ponto de partida.
Autocompletar no editor. O VS Code e as IDEs da JetBrains podem usar um JSON Schema para sugerir chaves e apontar erros em arquivos de configuração JSON.
Perguntas frequentes
Quais chaves são marcadas como obrigatórias?
As chaves presentes em todos os objetos do exemplo. Quando um array contém objetos com chaves diferentes, as chaves que faltam em alguns itens ficam fora de required.
Posso usar com OpenAPI?
O OpenAPI 3.1 usa o JSON Schema 2020-12, então o schema gerado se encaixa em components/schemas. Para o OpenAPI 3.0, substitua arrays de tipo como ["string", "null"] por nullable true.
Ele detecta formatos como email ou date-time?
Não. Ele só infere os tipos. Adicione format, pattern, minimum e palavras-chave semelhantes manualmente onde for necessário.
Meu JSON é enviado para algum servidor?
Não. Os tipos são gerados no seu navegador, então respostas de API com dados reais ficam no seu dispositivo.
Privacidade
Esta ferramenta funciona inteiramente no seu navegador. Seus arquivos e textos são processados no seu dispositivo e nunca são enviados aos nossos servidores.