Esboçar um contrato de dados
Comece por uma resposta API ou ficheiro de troca e confronte a estrutura com a documentação de negócio. Acrescente restrições que a amostra não demonstra.
Analise um documento JSON e infira automaticamente tipos, propriedades, arrays e campos obrigatórios.
Crie uma primeira versão de JSON Schema a partir de um documento JSON representativo. O gerador identifica tipos, objetos aninhados, listas e propriedades observadas para descrever uma estrutura reutilizável com draft 2020-12. O resultado é uma proposta a rever, não a descoberta automática de todas as regras API. Nenhum documento é enviado a um serviço: o navegador analisa a amostra e apresenta um esquema JSON para examinar, copiar ou exportar.
Strings tornam-se string, booleanos boolean e null null. Os inteiros observados distinguem-se dos outros números. Objetos produzem properties; arrays inferem items a partir de todos os elementos fornecidos, não apenas do primeiro. Variantes de tipos podem ser representadas por anyOf.
Combinam-se propriedades de objetos do mesmo array. Uma chave ausente em algumas entradas não é acrescentada a required; uma chave sempre presente é incluída. A regra reflete apenas a amostra. Uma resposta com um campo opcional no contrato real não permite adivinhar que possa ser omitido.
Os objetos usam additionalProperties: false, rejeitando chaves não observadas mesmo quando a aplicação as aceitaria. Reveja esta escolha antes de validar respostas futuras. Um array vazio não informa sobre elementos futuros: o esquema deixa a sua forma aberta em vez de inventar um tipo.
A inferência não deduz formatos de email, expressões regulares, limites numéricos ou listas exaustivas de valores. Uma data continua string. Observar 1 não prova minimum: 1 nem const: 1. Os números usam a representação do navegador; mantenha identificadores grandes como strings quando o contrato o determinar.
Cole JSON válido com a estrutura completa. Prefira dados anonimizados com formas relevantes a grandes volumes de valores repetidos.
Verifique tipos inferidos, required e objetos fechados. Um valor null é diferente de uma propriedade ausente.
Acrescente formatos ou limites justificados e teste dados válidos e inválidos antes de integrar. A descarga contém um esquema JSON, não um módulo TypeScript.
Comece por uma resposta API ou ficheiro de troca e confronte a estrutura com a documentação de negócio. Acrescente restrições que a amostra não demonstra.
Inclua campos omitidos, presentes e null para distinguir obrigatoriedade e tipos. Amostras variadas oferecem uma base mais representativa.
Use o esquema com um validador compatível com o draft e palavras-chave. A geração não instala verificações automáticas na aplicação.
id torna-se integer e active boolean. Ambos são obrigatórios por aparecerem no objeto; additionalProperties rejeita chaves adicionais.
Entrada
{"id":1,"active":true}Resultado
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"active": {
"type": "boolean"
}
},
"required": [
"id",
"active"
],
"additionalProperties": false
}id aparece nos dois objetos e mantém-se obrigatório. name surge só no segundo: é uma propriedade conhecida, mas opcional.
Entrada
[{"id":1},{"id":2,"name":"Ada"}]Resultado
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
}
}Não. Todos os elementos fornecidos participam. As propriedades combinam-se e as ausências observadas influenciam required. Continua a ser análise de amostras, não previsão de dados futuros desconhecidos.
Nunca faltou nas amostras relevantes. Retire-o de required segundo o contrato real ou acrescente um objeto representativo que omita a chave.
Os objetos gerados estão fechados com additionalProperties: false. Altere a regra se permitir novas propriedades, decidindo explicitamente antes de validar dados em evolução.
Não. Descreve formas observadas e exige revisão de negócio. Acrescente restrições pertinentes e use um validador compatível com o draft e as palavras-chave utilizadas.
Ferramentas relacionadas
Ferramentas semelhantes ou complementares a esta.
Valide um documento JSON com um esquema e localize precisamente cada erro.
Gere interfaces TypeScript, tipos, esquemas Zod ou JSON Schema a partir de um exemplo JSON.
Formate, minifique e valide um documento JSON para o tornar mais legível ou compacto.