Sobre a formatação de JSON
JSON (JavaScript Object Notation) é o formato de troca de dados mais comum na web. O JSON bruto vindo de APIs costuma estar minificado — tudo em uma linha, sem espaços — o que é difícil de ler. Embelezar adiciona indentação consistente para facilitar a leitura da estrutura.
Minificar remove todos os espaços em branco desnecessários, reduzindo o tamanho do arquivo para transmissão. A validação verifica se o texto é um JSON sintaticamente correto: correspondência de colchetes, chaves entre aspas, posicionamento de vírgulas e tipos de valores.
Como embelezar ou minificar JSON?
Para embelezar JSON, o texto é interpretado (parse) em uma estrutura de dados e reserializado com quebras de linha e indentação consistentes (geralmente 2 espaços); para minificar, a mesma estrutura é reserializada sem nenhum espaço em branco extra. Exemplo: {"a":1,"b":2} vira um bloco de 4 linhas com indentação de 2 espaços ao embelezar, e volta a {"a":1,"b":2} ao minificar.
Passos para embelezar, minificar e validar JSON
- Cole o texto JSON bruto na caixa de entrada.
- Para embelezar, a ferramenta interpreta o texto em uma estrutura de objeto/array e o reescreve com indentação de 2 espaços e uma quebra de linha por chave ou item de array.
- Para minificar, a ferramenta interpreta a mesma estrutura, mas a reescreve sem quebras de linha ou espaços extras, deixando apenas os caracteres necessários para a sintaxe válida.
- Para validar, a ferramenta tenta interpretar o texto sem reformatá-lo; uma interpretação bem-sucedida significa que o JSON é sintaticamente válido.
- Se a interpretação falhar em qualquer etapa, o motivo exato (token inesperado, vírgula faltando, colchete sem par) é exibido para que você possa localizar e corrigir o erro.
Embelezar vs. minificar
Embelezar: parse(texto) -> stringify(valor, indent=2) | Minificar: parse(texto) -> stringify(valor, indent=0)
- parse = converte o texto JSON em um objeto, array, string, número, booleano ou null na memória
- stringify = converte essa estrutura de volta em texto JSON, com ou sem indentação
Exemplos de resultados de embelezar e minificar
| Entrada | Embelezado (indentação de 2 espaços) | Minificado |
|---|
| {"a":1,"b":2} | {⏎ "a": 1,⏎ "b": 2⏎} | {"a":1,"b":2} |
| [1,2,3] | [⏎ 1,⏎ 2,⏎ 3⏎] | [1,2,3] |
| {"x":{"y":true}} | {⏎ "x": {⏎ "y": true⏎ }⏎} | {"x":{"y":true}} |
Perguntas frequentes
Por que a ferramenta diz que meu JSON é inválido quando parece correto?
Erros invisíveis comuns incluem uma vírgula sobrando depois do último item, aspas simples em vez de aspas duplas em torno de chaves e strings, ou uma chave sem aspas — todos válidos em literais de objeto JavaScript, mas não em JSON estrito. O validador segue a gramática JSON estrita, então qualquer um desses casos falhará mesmo que o texto pareça um JavaScript válido.
Qual é a diferença entre JSON e um objeto JavaScript?
JSON é um formato de dados baseado em texto com gramática estrita: chaves precisam ser strings entre aspas duplas, vírgulas sobrando são proibidas, e apenas um conjunto fixo de tipos de valor (string, número, booleano, null, objeto, array) é permitido. Um literal de objeto JavaScript é uma sintaxe mais permissiva que também permite chaves sem aspas, vírgulas sobrando, funções e comentários, nenhum dos quais é JSON válido.
Minificar altera os dados representados pelo JSON?
Não. Minificar apenas remove espaços em branco que não fazem parte de nenhum valor de string; a estrutura de dados interpretada, e portanto seu significado, é idêntica antes e depois. Apenas o número de bytes necessários para transmitir ou armazenar o texto muda.
Posso formatar JSON profundamente aninhado com esta ferramenta?
Sim. Embelezar funciona recursivamente em objetos e arrays de qualquer profundidade, indentando cada nível aninhado com mais 2 espaços, para que a estrutura permaneça legível independentemente de quão profundo seja o aninhamento.
Esta ferramenta valida e reformata JSON padrão conforme definido pela RFC 8259; ela não suporta JSON5, JSONC (comentários) ou outros dialetos JSON flexibilizados, e entradas muito grandes (vários megabytes) podem ser lentas para processar no navegador.
Sources: RFC 8259 — The JavaScript Object Notation (JSON) Data Interchange Format, ECMA-404 — The JSON Data Interchange Syntax