Gerador Online de JSON para JSON Schema
Gere JSON Schema robusto e compatível com padrões a partir de JSON real—instantaneamente, com segurança e gratuitamente.
Esta ferramenta recebe um exemplo JSON e produz um documento JSON Schema Draft-07 que reflete com precisão sua estrutura, tipos de dados e restrições. Todo o processamento ocorre no seu navegador para total privacidade. Nenhum dado é enviado ou armazenado em qualquer lugar. Ideal para documentação de APIs, validação e geração de código.
Converta JSON em JSON Schema abaixo
Como Funciona a Geração do Schema Internamente
Gerar JSON Schema a partir de exemplos JSON vai além de mapear campos para tipos. Esta ferramenta utiliza etapas essenciais para garantir correção e completude:
- Análise Sintática: A ferramenta interpreta seu JSON conforme ECMA-404, reportando erros detalhados para entradas malformadas ou construções ambíguas.
- Análise Estrutural: Constrói uma representação em árvore dos seus dados, classificando cada propriedade e elemento segundo os tipos principais do JSON Schema (objeto, array, string, número, inteiro, booleano, null).
- Percurso Recursivo: Estruturas profundas e aninhadas — incluindo arrays de objetos ou arrays aninhados — são percorridas recursivamente para gerar definições aninhadas no schema.
- Inferência e Mesclagem de Tipos: Para cada propriedade ou item do array, os tipos são inferidos. Quando propriedades ou itens possuem tipos mistos, o 'type' é expresso como um array (tipo união) conforme a especificação JSON Schema.
- Detecção de Obrigatoriedade: Ao analisar todos os objetos em cada nível, a ferramenta distingue chaves sempre presentes (obrigatórias) e às vezes ausentes (opcionais).
- Restrições de Valores: Sempre que possível, a ferramenta deduz enums (conjunto de valores permitidos), min/max para números, minLength/maxLength para strings e dicas de formato (como 'email', 'uri' ou 'date-time').
- Tratamento de Casos Especiais: Atenção especial a arrays vazios, nulls e estruturas esparsas — garantindo schemas válidos que correspondem à variabilidade do mundo real.
- Síntese do Schema: O schema final é gerado como um documento Draft-07 compatível com padrões — pronto para uso com ferramentas como Ajv, OpenAPI ou bibliotecas de geração de código.
Por Que Gerar JSON Schema? Usos Práticos
- Validação Automática: Use schemas gerados para impor contratos de dados e validar payloads em suas APIs, microsserviços ou CLIs.
- Documentação de API: Gere automaticamente documentação e exploradores interativos (Swagger, Postman) com definições precisas de dados.
- Geração de Código: Crie modelos ou validadores com tipagem segura em TypeScript, Python, Java e outras linguagens usando seu schema como fonte única de verdade.
- Geração de Dados para Testes: Ferramentas como JSON Schema Faker ou Mockaroo utilizam schemas para sintetizar dados simulados realistas para QA e testes de carga.
- Refatoração & Migração: Valide estruturas de dados legadas ou em mudança, garantindo compatibilidade conforme seu backend evolui.
Recursos Técnicos
- Compatibilidade com Draft-07 para máxima interoperabilidade com principais validadores e plataformas de design de APIs.
- Análise recursiva de qualquer profundidade de aninhamento — arrays dentro de arrays, objetos dentro de arrays e mais.
- Inferência precisa de tipos união ('type' array) para campos ou itens que variam entre amostras.
- Detecção automática de enums, comprimento, padrão, formato, min/max e outras restrições comuns.
- Suporte explícito para nulls, arrays/objetos vazios e registros parciais.
- A geração do schema ocorre completamente no navegador. Seu JSON de entrada nunca sai do seu dispositivo.
Exemplo Técnico: Do JSON Exemplo ao Schema Draft-07
Entrada JSON de Exemplo
{ "transaction": { "id": "txn_abc123", "amount": 99.95, "currency": "USD", "status": "completed", "meta": { "ip": "203.0.113.1", "tags": ["recurring", null] } }, "refunded": false, "notes": null }JSON Schema Gerado
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "transaction": { "type": "object", "properties": { "id": { "type": "string" }, "amount": { "type": "number" }, "currency": { "type": "string", "minLength": 3, "maxLength": 3 }, "status": { "type": "string", "enum": ["completed"] }, "meta": { "type": "object", "properties": { "ip": { "type": "string", "format": "ipv4" }, "tags": { "type": "array", "items": { "type": ["string", "null"] } } }, "required": ["ip", "tags"] } }, "required": ["id", "amount", "currency", "status", "meta"] }, "refunded": { "type": "boolean" }, "notes": { "type": ["null"] } }, "required": ["transaction", "refunded", "notes"] }
Como Usar Esta Ferramenta de JSON para JSON Schema
- Cole ou digite seu JSON de exemplo no editor abaixo. A ferramenta aceita qualquer JSON válido, de objetos simples a estruturas profundamente aninhadas.
- Clique em 'Gerar JSON Schema' para criar e visualizar o JSON Schema produzido.
- Copie, edite ou baixe o schema. Integre-o diretamente em suas definições de APIs, lógica de validação ou documentação.
Exemplos de Código para Geração de Esquema a partir de JSON
Veja como gerar JSON Schema a partir de JSON em várias linguagens de programação.
JavaScript (Node.js)
Install: npm install jsonschema-generator
const generateSchema = require('jsonschema-generator');
const data = {
name: "Alice",
age: 30,
isActive: true,
tags: ["user", "admin"]
};
const schema = generateSchema(data);
console.log(JSON.stringify(schema, null, 2));
JavaScript (Node.js) with generate-schema
Install: npm install generate-schema
const GenerateSchema = require('generate-schema');
const data = { name: "Alice", age: 30, tags: ["admin", "user"] };
const schema = GenerateSchema.json('User', data);
console.log(JSON.stringify(schema, null, 2));
Python with genson
Install: pip install genson
from genson import SchemaBuilder
sample = {"name": "Alice", "age": 30, "tags": ["user", "admin"]}
builder = SchemaBuilder()
builder.add_object(sample)
print(builder.to_json(indent=2))
Python with jsonschema-generate
Install: pip install jsonschema-generate
from jsonschema_generate import generate_schema
sample = {"name": "Alice", "age": 30, "tags": ["user", "admin"]}
schema = generate_schema(sample)
print(schema)
Go
Install: go get github.com/invopop/jsonschema
package main
import (
"encoding/json"
"fmt"
"github.com/invopop/jsonschema"
)
type User struct {
Name string `json:"name"
Age int `json:"age"
Tags []string `json:"tags"
}
func main() {
schema := jsonschema.Reflect(&User{})
out, _ := json.MarshalIndent(schema, "", " ")
fmt.Println(string(out))
}
Java with jsonschema2pojo (CLI/Gradle/Maven)
Install: jsonschema2pojo CLI or plugin (see https://www.jsonschema2pojo.org/)
# Generate Java POJOs *from* a JSON Schema, not the reverse.
# For schema generation from Java, see tools like jackson-module-jsonSchema.
# See: https://github.com/FasterXML/jackson-module-jsonSchema
C# with NJsonSchema
Install: dotnet add package NJsonSchema
using NJsonSchema;
using Newtonsoft.Json.Linq;
var sample = JObject.Parse("{\"name\":\"Alice\",\"age\":30, \"tags\":[\"user\"]}");
var schema = await JsonSchema.FromSampleJsonAsync(sample.ToString());
Console.WriteLine(schema.ToJson());
PHP with swaggest/json-schema
Install: composer require swaggest/json-schema
require 'vendor/autoload.php';
use Swaggest\JsonSchema\Structure\ClassStructure;
$sample = ["name" => "Alice", "age" => 30, "tags" => ["user"]];
$schema = ClassStructure::exportSchema($sample);
echo json_encode($schema, JSON_PRETTY_PRINT);
Ruby with json_schemer
Install: gem install json_schemer
require 'json_schemer'
sample = { "name" => "Alice", "age" => 30, "tags" => ["admin", "user"] }
schema = JSONSchemer.schema(sample)
puts schema.to_json
Bash (with Python genson)
Install: pip install genson
echo '{"name":"Alice","age":30,"tags":["user","admin"]}' | genson | jq .
Rust with schemars
Install: cargo add schemars
use schemars::JsonSchema;
use serde::Serialize;
#[derive(Serialize, JsonSchema)]
struct User {
name: String,
age: u32,
tags: Vec<String>,
}
fn main() {
let schema = schemars::schema_for!(User);
println!("{}", serde_json::to_string_pretty(&schema).unwrap());
}
Scala with com.github.andyglow:jsonschema
Install: libraryDependencies += "com.github.andyglow" %% "jsonschema" % "0.7.7"
import json.schema._
case class User(name: String, age: Int, tags: List[String])
val schema = Json.schema[User]
println(schema.asSpray.prettyPrint)
TypeScript with typescript-json-schema
Install: npm install -g typescript-json-schema
# Generate schema from a TypeScript interface:
typescript-json-schema tsconfig.json User --out schema.json
# See https://github.com/YousefED/typescript-json-schema
Dart (manual, no auto-inference)
Install: None (write schema manually)
// Dart does not have an automatic JSON Schema generator yet.
// Manually define schema as a Dart Map or use online tools.