Trabalhar com texto JSON costuma se resumir a três tarefas diferentes: torná-lo legível, torná-lo compacto ou verificar se ele é correto. São três operações distintas, embora costumem ser reunidas numa única ferramenta.
Formatação (pretty-print)
A formatação adiciona indentação, quebras de linha e espaços ao redor da pontuação para que a estrutura do JSON seja fácil de ler a olho nu. É uma mudança puramente estética — não afeta os dados, apenas a representação visual.
Minificação
A minificação remove todos os espaços, quebras de linha e indentações desnecessários, deixando apenas os caracteres realmente necessários. Isso reduz o tamanho do arquivo, o que importa ao transmitir dados pela rede ou armazenar grandes volumes — a estrutura dos dados em si não muda.
Validação
A validação verifica se o texto é JSON sintaticamente correto. Erros típicos que ela detecta: uma vírgula sobrando antes de um colchete de fechamento, aspas simples em vez de duplas, chaves de objeto sem aspas, comentários (que o padrão JSON não permite) ou colchetes não fechados. JSON válido é um pré-requisito para que a formatação ou a minificação funcionem.
Quando usar cada uma
- Formatação — ao depurar respostas de API ou editar manualmente arquivos de configuração.
- Minificação — antes de enviar dados pela rede ou incorporá-los em código de produção.
- Validação — ao diagnosticar por que um parser se recusa a ler um arquivo JSON.
Por que "João" às vezes vira "João"
Muitos serializadores escapam por padrão qualquer caractere fora do ASCII: um campo como "nome": "João" sai do json_encode() do PHP como "nome":"João", a menos que a flag JSON_UNESCAPED_UNICODE seja passada explicitamente. Isso pega muita gente de surpresa no Brasil justamente porque PHP é a linguagem por trás de uma fatia enorme do ecossistema local — de WordPress a sistemas legados em Laravel — e o comportamento padrão sem essa flag deixa nomes, endereços e descrições de produto ilegíveis em qualquer log ou resposta de API, mesmo sendo JSON perfeitamente válido antes e depois do escape.
JSON5 e JSONC não são o mesmo que JSON
Alguns ambientes (como os arquivos de configuração do VS Code ou do TypeScript) aceitam vírgulas finais, comentários e chaves sem aspas — isso são extensões JSON5 ou JSONC, não JSON padrão (RFC 8259). Um validador configurado para JSON estrito rejeita corretamente esse tipo de arquivo, mesmo que o editor o "entenda".