Ferramenta Tool Kumar
Gerador de JSON Schema
Use um documento JSON representativo para criar uma versão inicial de um JSON Schema. O resultado descreve a estrutura observada e oferece um ponto de partida para a validação.
Como usar esta ferramenta
- Cole um documento de exemplo.
- Escolha JSON Schema na visualização “Converter”.
- Confira as propriedades inferidas e salve o schema.
Exemplo prático
O schema é gerado a partir do objeto de exemplo, incluindo as estruturas aninhadas profile e tags. Todas as propriedades estão presentes nesse único objeto, então todas são obrigatórias.
Entrada
{"name":"Ada","age":36,"active":true,"tags":["json","tools"],"profile":{"city":"London"}}Saída
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Root",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer"
},
"active": {
"type": "boolean"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"profile": {
"$ref": "#/$defs/Profile"
}
},
"required": ["name", "age", "active", "tags", "profile"],
"$defs": {
"Profile": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": ["city"]
}
}
}
Como as propriedades obrigatórias são escolhidas
Ao gerar um schema a partir de vários registros, a lista required mantém apenas as chaves presentes em todos eles. Neste exemplo, os dois usuários têm id e email, mas só o primeiro tem phone, então phone é descrito, mas não é obrigatório.
Input:
[{"id":1,"email":"ada@example.com","phone":"+44 20 7946 0000"},{"id":2,"email":"lin@example.com"}]
Generated schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Root",
"type": "array",
"items": {
"$ref": "#/$defs/RootItem"
},
"$defs": {
"RootItem": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"email": {
"type": "string",
"format": "email"
},
"phone": {
"type": "string"
}
},
"required": ["id", "email"]
}
}
}Opções e casos especiais
- Objetos e arrays aninhados são representados recursivamente.
- Uma propriedade entra em required quando todos os objetos de amostra naquela posição a contêm. Por isso, uma única amostra completa torna obrigatórias todas as propriedades observadas; em um array de objetos, uma chave ausente em alguns objetos se torna opcional.
- Valores null em alguns objetos acrescentam null ao tipo da propriedade, em vez de torná-la opcional.
- A saída é um ponto de partida. Revise required, adicione formatos, intervalos e padrões e remova tudo o que o contrato da sua API não garante.
- Esta página gera um schema; ela não valida um documento com base em um schema. Use a página do validador para verificar a sintaxe JSON antes de gerar o schema.
Privado por padrão
Seu documento fica neste navegador. O Tool Kumar analisa, converte e cria downloads no seu dispositivo, sem conta e sem envio ao servidor.
Gerador de JSON Schema: perguntas frequentes
- O gerador marca todas as propriedades como obrigatórias?
- Apenas as propriedades presentes em todos os objetos de amostra. Uma única amostra completa marca todas as suas propriedades como obrigatórias, enquanto uma chave ausente em alguns objetos de um array se torna opcional. Confira a lista required de acordo com o contrato da sua API antes de publicar o schema.
- Qual versão (draft) do JSON Schema ele usa?
- A saída declara JSON Schema Draft 2020-12 com as palavras-chave padrão type e properties.
- Ele pode inferir a estrutura dos itens de um array?
- Sim. Arrays de objetos geram um schema items com base na estrutura de objeto observada.