Minificador de JSON online
Cole o JSON (ou arraste um arquivo .json) e clique em Minificar JSON. O resultado sai em uma única linha, sem espaços nem quebras, com o tamanho antes e depois em bytes. Tudo roda no seu navegador: o conteúdo não é enviado a nenhum servidor.
O arquivo é lido no seu navegador: nada é enviado a servidor.
Como usar
- Cole o JSON na caixa, arraste um arquivo para cima dela ou use Abrir arquivo .json (até 20 MB).
- Se quiser, marque Ordenar as chaves ou Escapar acentos e emojis.
- Clique em Minificar JSON e depois em Copiar JSON ou Baixar .json (o arquivo sai como
nome.min.json).
Se o JSON tiver um erro de sintaxe, a ferramenta informa a linha e a coluna, mostra o trecho com uma seta e explica o problema em português — vírgula sobrando, aspas simples, chave sem aspas, comentário. O botão Ir para o erro posiciona o cursor no ponto exato.
O que a minificação remove
Minificar é apagar o que a gramática do JSON chama de espaço em branco entre os elementos: espaço, tabulação, quebra de linha (LF) e retorno de carro (CR). São só esses quatro caracteres, segundo a RFC 8259. O que está dentro das aspas não é tocado — um texto como "Rua das Flores" continua com todos os seus espaços.
Antes (75 bytes):
{
"id": 1,
"nome": "Ana",
"tags": ["api", "teste"],
"ativo": true
}Depois (57 bytes, 24% menor):
{"id":1,"nome":"Ana","tags":["api","teste"],"ativo":true}Os dois textos representam exatamente os mesmos dados. A redução depende de quanto o arquivo estava indentado: JSON com muitos níveis de aninhamento e indentação de 4 espaços costuma encolher bem mais do que um arquivo raso.
Por que este minificador não altera números
A forma mais comum de minificar é ler o JSON com JSON.parse e reescrevê-lo com JSON.stringify. Funciona, mas o texto passa pelos tipos do JavaScript e alguns valores voltam diferentes:
| Entrada | Com JSON.parse + JSON.stringify | Aqui |
|---|---|---|
12345678901234567890 | 12345678901234567000 | 12345678901234567890 |
1.0 | 1 | 1.0 |
1E+5 | 100000 | 1E+5 |
{"b":1,"10":2,"2":3} | {"2":3,"10":2,"b":1} | {"b":1,"10":2,"2":3} |
{"a":1,"a":2} | {"a":2} | {"a":1,"a":2} |
O primeiro caso é o mais perigoso: inteiros acima de 2⁵³ − 1 (9.007.199.254.740.991) não cabem no tipo numérico do JavaScript, e IDs de banco de dados, de pedidos ou de redes sociais passam desse limite com frequência. O arquivo “minificado” sai com outro ID e ninguém percebe.
Esta ferramenta trabalha de outro jeito: percorre o texto token por token, valida a sintaxe e copia cada número e cada string exatamente como foram escritos. Só os espaços entre eles são descartados. Por isso a ordem das chaves, os escapes já existentes (\n, \u00e7) e as chaves repetidas também ficam como estavam.
As opções
Ordenar as chaves reorganiza as chaves de todos os objetos, em todos os níveis; a ordem dos itens dos arrays nunca muda. A ordenação é a mesma do sort() do JavaScript, pelo código dos caracteres: dígitos, depois maiúsculas, depois minúsculas e por fim letras acentuadas ("10", "2", "Z", "a", "b", "é"). É útil para comparar duas versões de um arquivo ou gerar sempre a mesma saída para os mesmos dados.
Escapar acentos e emojis troca todo caractere fora do ASCII por \uXXXX: "São Paulo" vira "S\u00e3o Paulo", e um emoji vira dois escapes (o par substituto). O JSON continua equivalente e passa por sistemas antigos que estragam acentos. Em compensação o arquivo cresce: o ã ocupa 2 bytes em UTF-8 e o escape ocupa 6. Use só quando precisar de uma saída 100% ASCII.
Quando vale a pena minificar
- Respostas de API e arquivos de dados servidos pela web, para trafegar menos bytes.
- Configuração embutida em variável de ambiente, atributo HTML, linha de comando ou campo de banco, onde quebras de linha atrapalham.
- JSON Lines (um registro por linha), formato comum em logs e em importações de dados.
- Limites de tamanho de payload em filas, webhooks e armazenamento chave–valor.
Se o servidor já comprime as respostas com gzip ou Brotli, o ganho da minificação fica menor, porque espaços repetidos comprimem muito bem — ainda assim costuma haver alguma economia, e o cliente tem menos caracteres para interpretar. Para arquivos que pessoas editam à mão, prefira manter a versão indentada no repositório e minificar só na publicação.
Limitações
- É uma ferramenta para JSON padrão. Comentários, vírgula no final e aspas simples (JSON5/JSONC) são apontados como erro, não removidos.
- Arquivos maiores que 20 MB não são abertos, para não travar o navegador. Acima de cerca de 300 mil caracteres o conteúdo não aparece na caixa de texto, mas é processado normalmente e pode ser copiado ou baixado.
- Um BOM no início do arquivo é descartado.
- Com chaves repetidas no mesmo objeto, as duas são mantidas; cada programa decide qual delas vale.
Ferramentas relacionadas
- Formatador de JSON — o caminho inverso: indenta o JSON para leitura.
- Validador de JSON — confere a sintaxe e resume a estrutura.
- Visualizador de JSON em árvore — navegue pelo conteúdo e copie o caminho de cada campo.
- Comparador de JSON — veja o que mudou entre dois arquivos.
- Conversor CSV ↔ JSON — transforme planilhas em JSON e vice-versa.
Perguntas frequentes
Minificar JSON muda os dados?
Não. Só são removidos espaços, tabulações e quebras de linha que ficam fora das aspas. Qualquer programa lê o arquivo minificado e obtém os mesmos valores.
Como desfazer a minificação?
Passe o resultado pelo Formatador de JSON, que recoloca a indentação. Nenhuma informação foi perdida.
O tamanho mostrado é em bytes ou em caracteres?
Em bytes, considerando o texto gravado em UTF-8, a codificação que a RFC 8259 exige para JSON trocado entre sistemas. Letras acentuadas contam 2 bytes e a maioria dos emojis, 4.
Posso minificar um JSON com dados sigilosos?
O processamento acontece inteiro no navegador, sem envio para servidor, inclusive ao abrir um arquivo. Ainda assim, siga a política da sua empresa para dados de clientes e credenciais.
Por que o resultado ficou maior que o original?
Isso só acontece com a opção de escapar acentos e emojis ligada: cada caractere acentuado passa a ocupar 6 bytes. Desmarque a opção se a meta é reduzir o tamanho.