Formatação e Validação de JSON: Referência Rápida para Desenvolvedores
Formate, valide e compreenda JSON como um profissional. Abrange regras de sintaxe, erros comuns, JSONPath e ferramentas práticas para trabalhar com dados JSON.
JSON (JavaScript Object Notation) é a língua franca das APIs web. Simples por design — mas uma vírgula faltando ou uma chave mal fechada pode silenciosamente quebrar uma aplicação. Aqui está tudo o que você precisa para trabalhar com JSON com confiança.
Sintaxe JSON em 90 segundos
JSON possui exatamente seis tipos de valor:
{
"string": "hello world",
"number": 42,
"boolean": true,
"null_value": null,
"array": [1, 2, 3],
"object": { "nested": "value" }
}
Regras que costumam confundir:
- Chaves devem ser strings com aspas duplas —
{name: "Alice"}não é um JSON válido - Sem vírgulas finais —
[1, 2, 3,]é inválido - Sem comentários — JSON não possui sintaxe
//ou/* */ - Strings devem usar aspas duplas — aspas simples não são permitidas
- Números não podem ter zeros à esquerda —
007é inválido
Os erros mais comuns em JSON
1. Vírgula final
// Inválido
{ "a": 1, "b": 2, }
// Válido
{ "a": 1, "b": 2 }
2. Strings com aspas simples
// Inválido
{ 'name': 'Alice' }
// Válido
{ "name": "Alice" }
3. Chaves sem aspas
// Inválido
{ name: "Alice" }
// Válido
{ "name": "Alice" }
4. Valores undefined ou NaN — Esses valores do JavaScript não existem em JSON. Use null no lugar.
Formatação vs. minificação
JSON formatado (pretty-printed) usa indentação e quebras de linha para facilitar a leitura:
{
"user": {
"id": 1,
"name": "Alice"
}
}
JSON minificado remove todos os espaços em branco:
{"user":{"id":1,"name":"Alice"}}
Use JSON formatado em arquivos de configuração e código-fonte. Use JSON minificado em respostas de API e armazenamento para reduzir o tamanho do payload. Nosso JSON Formatter alterna entre os dois com um clique.
Validação com JSON Schema
JSON Schema permite definir a estrutura esperada de um documento JSON e validar dados em relação a ela. Isso é essencial para contratos de API e validação de arquivos de configuração.
Um schema simples:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"required": ["name", "age"],
"properties": {
"name": { "type": "string" },
"age": { "type": "integer", "minimum": 0 }
}
}
Esse schema rejeita qualquer objeto que não contenha name ou age, ou onde age seja negativo. O JSON Schema Validator permite colar o schema e os dados para validação em tempo real.
Gerando tipos TypeScript a partir de JSON
Se você recebe uma resposta JSON de uma API e precisa de interfaces TypeScript, cole o JSON em nosso conversor JSON to TypeScript. Ele infere os tipos a partir da estrutura dos dados:
Entrada:
{ "id": 1, "name": "Alice", "active": true, "tags": ["admin"] }
Saída:
interface Root {
id: number;
name: string;
active: boolean;
tags: string[];
}
JSONPath: consultando dados aninhados
JSONPath está para JSON assim como XPath está para XML — uma linguagem de consulta para extrair valores de estruturas aninhadas. Sintaxe básica:
| Expressão | Significado |
|---|---|
$.store.book |
A chave book dentro de store |
$.store.book[0] |
Primeiro livro |
$.store.book[*].title |
Todos os títulos de livros |
$..price |
Todos os valores price em qualquer parte do documento |
O JSON Path Finder permite clicar em qualquer valor em uma árvore JSON renderizada e copia o caminho automaticamente.
Comparando dois objetos JSON
Ao depurar mudanças em APIs ou divergências em configurações, você precisa ver o que mudou entre dois objetos JSON. O JSON Diff Viewer destaca campos adicionados, removidos e modificados lado a lado.
Convertendo JSON para Zod schema
Se você usa Zod para validação em tempo de execução no TypeScript, a ferramenta JSON to Zod converte um JSON de exemplo em um Zod schema pronto para uso, com inferência inteligente de tipos para campos de e-mail, URL e datetime.
Resumo
JSON é simples, mas implacável. Sempre valide antes de fazer o parse, use interfaces TypeScript para detectar incompatibilidades de estrutura em tempo de compilação e mantenha um formatter à mão para depurar respostas de API. Esses hábitos evitam categorias inteiras de bugs em tempo de execução.