Minificador de JSON Online: Compactar JSON

Minifique JSON online: cole ou arraste o arquivo e receba tudo em uma linha, sem espaços. Mostra a redução em bytes e não altera números grandes.

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

  1. Cole o JSON na caixa, arraste um arquivo para cima dela ou use Abrir arquivo .json (até 20 MB).
  2. Se quiser, marque Ordenar as chaves ou Escapar acentos e emojis.
  3. 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:

EntradaCom JSON.parse + JSON.stringifyAqui
123456789012345678901234567890123456700012345678901234567890
1.011.0
1E+51000001E+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

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.