O que faz
Reescreve um documento JSON na sua menor forma válida: todo espaço, quebra de linha e caractere de indentação entre tokens é removido. A entrada é analisada primeiro, então a saída é garantidamente JSON válido carregando dados idênticos. Entrada inválida produz uma caixa de erro vermelha, nunca uma saída quebrada. Um selo de economia no cabeçalho da saída informa o tamanho antes e depois em bytes e a porcentagem economizada, calculada com uma casa decimal — verde quando bytes foram removidos, neutro quando a entrada já estava compacta. Tudo roda localmente no seu navegador.
Como usar
- Cole JSON na Entrada JSON (esquerda), ou toque num chip sob Experimente: — Config pretty, Excesso de espaços ou Já minificado — para ver cada caso minificar. Exemplo carrega um documento de demonstração; Limpar esvazia a caixa.
- O documento minificado aparece ao vivo em Minificado (direita), com o selo de economia acima dele:
N bytes → M bytes · saved X%. - Copiar leva a saída; Baixar salva como
minified.json(oferecido só quando a entrada é JSON válido). - Copiar link de compartilhamento codifica sua entrada na URL. Abrir esse link devolve a entrada direto para a ferramenta.
Exemplos
Toque em Exemplo:
78 bytes → 64 bytes · saved 17.9% — {"name":"CosmoDev","tools":["json-minify","base64"],"open":true}
O chip Excesso de espaços mostra as duas regras de uma vez — o preenchimento entre tokens some, os espaços dentro de uma string sobrevivem:
{ "greeting" : "hello world" } → {"greeting":"hello world"} (67 bytes → 41 bytes · saved 38.8% para o documento completo do chip)
Um documento já minificado fica como está:
{"a":1,"b":[1,2]} (17 bytes) → {"a":1,"b":[1,2]} (17 bytes) · saved 0%
Minificar pode alongar um documento, porque a formatação de números JSON é normalizada na re-serialização:
{"a":1E3} (9 bytes) → {"a":1000} (10 bytes) · saved -11.1%
O número negativo não é um bug; é a diferença honesta de tamanho.
Como funciona a minificação de JSON
Minificação remove apenas espaços em branco. Ela não encurta chaves, não descarta dados e não reordena nada: analisa a entrada e a serializa de volta com zero caracteres separadores. A operação é exatamente reversível — formatar o documento minificado devolve uma forma legível com o mesmo conteúdo.
Como vírgulas, dois-pontos e colchetes já delimitam os tokens, todo caractere de espaço em branco entre eles é opcional:
| Bonito | Minificado | Removido |
|---|---|---|
{\n "a": 1\n} |
{"a":1} |
quebra de linha, indentação, espaço após : |
A única exceção é o espaço em branco dentro de uma string entre aspas: ele é dado, e sobrevive intacto. Uma frase dentro de um valor mantém seus espaços após a minificação.
Payloads minificados importam ondequer que bytes sejam contados repetidamente: arquivos de configuração baixados por navegadores, respostas de API servidas em escala, JSON embutido numa URL ou numa tag script de linha única, e one-liners de linha de comando onde quebras de linha quebram o quoting do shell.
Bom saber
- Privado: análise e serialização rodam localmente; nada é enviado a lugar algum.
- Equivale a
JSON.stringify(JSON.parse(input)). - Atenção ao sinal: economia 0 ou negativa significa que a entrada já estava compacta. A saída ainda é a forma canônica.
- Links de compartilhamento carregam a entrada completa na URL — documentos muito grandes geram links muito longos.
- Ferramentas relacionadas: Formatador de JSON, Validador de JSON, Conversor JSON ↔ CSV.