JSON Minify

Remova espaços do JSON e veja exactamente quantos bytes poupou

JSON

Minificado

JSON Minify

Remova espaços do JSON e veja exactamente quantos bytes poupou

Recursos

  • Minificação numa chamada via JSON.parse + JSON.stringify — passa por um parser real, por isso entrada sintacticamente inválida falha rápido com a mensagem exacta do motor JavaScript
  • Estatísticas de tamanho precisas em bytes: TextEncoder.encode().length mede bytes UTF-8 (não contagem de caracteres), por isso caracteres multibyte e emoji são pesados correctamente
  • Linha de poupança mostra delta absoluto em bytes e percentagem do tamanho de entrada — corresponde ao que um payload minificado-depois-gzipado ficará no cabo
  • O botão Copiar alterna para Copiado! durante 1,5 s após o clique, confirmando claramente que a escrita para a área de transferência teve sucesso — sem falhas silenciosas
  • O botão Descarregar emite um Blob `minified.json` com MIME application/json, pronto para colocar num corpo de pedido HTTP ou cometer numa pasta de fixtures
  • Erros de parsing surgem com a mensagem completa do motor JS (linha/coluna quando o parser fornece) para apontar o caractere ofensor em vez de adivinhar
  • Puramente do lado cliente: a entrada nunca sai do navegador, sem telemetria, sem upload. A chamada minify é síncrona e instantânea para configs típicos (JSON sub-megabyte)
  • A saída preserva a ordem das chaves e a representação numérica exacta — JSON.stringify não recodifica inteiros como floats nem altera escapes Unicode, por isso a saída minificada é byte-equivalente ao que um consumidor estrito reparseria

Como usar

  1. Cole o seu JSON no painel de entrada à esquerda.
  2. Clique Minificar. A ferramenta executa JSON.parse para validar, depois JSON.stringify sem argumento de indentação para remover todo o espaço em branco insignificante.
  3. Leia a linha de estatísticas: bytes de entrada, bytes de saída e bytes/percentagem poupados — útil para decidir se a minificação vale a contrapartida em legibilidade.
  4. Clique Copiar para colocar a string minificada na sua área de transferência, ou Descarregar para guardar como `minified.json`.
  5. Se a entrada era inválida, uma linha de erro vermelha mostrará a mensagem de parsing do motor JS — corrija o JSON e clique Minificar novamente.

Dicas e Melhores Práticas

  • Se minifica principalmente para encaixar num orçamento de bundle, habilite também gzip no pipeline de assets estáticos do CI — JSON pretty gzipado costuma ser mais pequeno do que minificado-sem-compressão.
  • Mantenha o JSON pretty-print original em controlo de versões; minifique num passo de build em vez de cometer a versão minificada.
  • Para JSON muito grande (10 MB+), o passo TextEncoder continua rápido, mas o par JSON.parse + JSON.stringify dispara memória brevemente — ok num separador de navegador, problemático num service worker hot path.
  • Se o seu JSON contém números perto do limite safe-integer do JS (2^53), saiba que JSON.parse os converte para doubles — minify não altera isso, mas vale a pena saber antes de depurar uma incompatibilidade de precisão.
  • Use Descarregar para colocar o ficheiro minificado num directório de fixtures; combine depois com JSON Diff se precisar de confirmar que a viagem de ida e volta preservou tudo.

Perguntas Frequentes

Quanto menor ficará o meu JSON?

Depende totalmente de quanto espaço em branco havia inicialmente. Uma config muito pretty-printed (indentação 2 espaços, alinhamento de chaves, novas linhas finais) costuma encolher 30–50 %. Um JSON já numa linha encolhe 0 %. A linha de estatísticas reporta o número exacto — experimente nos seus dados antes de se comprometer com a versão minificada.

Devo minificar JSON em produção?

Normalmente não, porque compressão gzip/brotli já esmaga espaços repetidos em poucos bytes. A minificação ajuda quando (1) não pode habilitar compressão no transporte (alguns alvos embebidos), (2) está a incorporar o JSON num bundle JS onde cada byte conta contra o orçamento do bundle, ou (3) está a optimizar IndexedDB/localStorage onde não há compressão de transporte.

Isto altera os meus dados de alguma forma?

Não. JSON.parse + JSON.stringify é uma viagem de ida e volta pela spec JSON do JavaScript, que é um subconjunto estrito do ECMAScript. Números, strings, booleanos, null, arrays e objectos saem todos byte-equivalentes a um reparse válido. A única diferença é espaços e ordem de chaves (JSON.stringify mantém a ordem de inserção original de um literal de objecto).

Como são contados os bytes?

Via TextEncoder().encode().length, que dá o comprimento em bytes UTF-8. ASCII puro é um byte por caractere; é são dois bytes; a maioria dos caracteres CJK três; a maioria dos emoji quatro. Contar o comprimento da string JavaScript (unidades de código) sobrerreportaria ASCII e subrelataria caracteres do plano suplementar; TextEncoder dá o número que corresponde ao que vai no cabo.

Porque é que Minify falha na minha entrada?

JSON.parse é estrito: sem vírgulas finais, sem comentários, sem aspas simples à volta de strings, sem chaves sem aspas. Se trabalha com JSON relaxado (JSON5, JSONC), o parser irá lançar — pré-processe com um parser relaxado primeiro, ou use o modo JSONC do JSON Formatter para limpar. A linha de erro mostra a mensagem do motor, frequentemente incluindo a linha/coluna que falhou.

É enviado algo para um servidor?

Não. Ambos os painéis ficam no seu navegador; a minificação corre sincronamente no mesmo contexto JavaScript que renderizou a página. O separador Rede do DevTools não mostra pedidos ao clicar Minificar. A página funciona offline após o primeiro carregamento.

O JSON minificado continua amigável para diff?

Menos. Um ficheiro JSON pretty-print diffa linha a linha e os revisores vêem exactamente que chave mudou. Um ficheiro JSON minificado é uma linha gigante — uma edição de um único caractere aparece como substituição de linha inteira em `git diff`. Mantenha os ficheiros fonte pretty-print; minifique apenas para transporte ou armazenamento.

Qual a diferença para o JSON Formatter?

O JSON Formatter tem um botão Minify ao lado de Pretty-Print mais vista em árvore, JSONPath, JSONC, validação de esquema e diff. Esta ferramenta é a versão leve de propósito único: colar, minificar, copiar, descarregar — sem painéis, sem modos, apenas bytes poupados.