§

貼上 JSON

§

壓縮輸出

text
§

節省百分比

  • 原始大小
  • 壓縮後大小
  • 節省
  • 節省百分比

把 JSON 壓到最小,在台灣的雲端與行動服務裡是日常優化:中華電信的 NB-IoT 與 LTE-M 智慧電表回傳 JSON 遙測時,位元組數直接影響月租成本;台積電的廠務 MES 介接與供應鏈 API 嚴守載荷大小,壓縮後可降低跨機台延遲;玉山銀行、中國信託銀行的行動銀行 App 在 LINE 通知與電子發票 API 上廣泛使用 JSON;金管會發布的開放 API 規範與政府開放資料 (data.gov.tw) 的 JSON 匯出皆鼓勵壓縮上線,以節省 CDN 流出費用並符合資安規範。本工具完全在瀏覽器內運作,任何欄位都不會離開你的裝置,自然滿足個資法的本地化處理需求。

什麼是 JSON 壓縮?

JSON(JavaScript Object Notation)是一種由 RFC 8259 與 ECMA-404 所定義的輕量、以文字為基礎的資料交換格式。壓縮會剔除所有位於字串字面值之外的空格、定位字元與換行——所有值都會逐位元組保留,只有裝飾性的空白被去除。壓縮後的輸出解析得到與原輸入完全相同的值。

JSON 壓縮是如何運作的?

你的輸入完全在瀏覽器中使用內建的 JSON.parseJSON.stringify 函式處理。主要步驟如下:

  1. 從文字框逐字讀取你貼上的輸入——每一個位元組都保存在本機記憶體中。
  2. 瀏覽器以 JSON.parse 解析它。若輸入並非合法的 JSON,解析器會丟出一個 SyntaxError,被捕捉後原樣呈現給你——你的文字永遠不會離開本頁面。
  3. 解析成功後,解析得到的值會以不帶縮排引數的 JSON.stringify(value) 重新輸出,產生該值最短的合法形式。
  4. 原文字與壓縮文字的位元組長度以 new TextEncoder().encode(...).byteLength 計算——這正是 HTTP 伺服器在連線上看到的 UTF-8 位元組數。
  5. 結果寫入唯讀文字框,指標列以百分比形式顯示節省的位元組,下載按鈕則將結果打包成可發佈的 .min.json 檔案。

為什麼使用此工具壓縮 JSON?

  • 隱私:每一次解析、壓縮與統計都在你的瀏覽器中完成。JSON 永遠不會抵達我們的伺服器——無上傳、無遙測、免註冊。
  • 真實的位元組數據:原始大小、壓縮後大小與節省量都由 TextEncoder 算出,看到的就是 CDN 或 API 閘道實際會計費的 UTF-8 位元組差。
  • 零資料遺失:壓縮僅去除裝飾性空白——所有值都還原成同一棵 JSON 樹,對正式環境的負載、清單檔與內嵌測試資料都是安全的。
  • 速度快:純粹的 JSON.parse + JSON.stringify 就能即時處理常見的剪貼簿級負載,不需載入任何外部函式庫。

JSON 壓縮有哪些常見應用?

去除 JSON 中無意義的空白在 Web 開發、資料工程與嵌入式系統中都很常見:

  • API 負載瘦身:在請求與回應越過計費 API 閘道、付費出網連線或衛星連線之前縮小其體積。
  • 嵌入 HTML:把 JSON 資料塞進 data-* 屬性或 <script type="application/json"> 標籤裡,避免美化輸出的空白外洩到渲染後的頁面中。
  • 更小的 localStorage:以壓縮後的 JSON 取代美化版本寫入 localStorage / IndexedDB,這在行動瀏覽器嚴格的同源儲存配額下尤其有用。

JSON 壓縮範例是什麼樣子?

貼上一份約 1.2 KB 的美化設定檔(兩空格縮排約 1,225 位元組)後按下 壓縮,通常會壓到 0.4 KB 以下——節省約 66%——且每個鍵與值都原樣保留。下載得到的 output.min.json 與一台沒有任何格式化中介軟體、並以 Content-Type: application/json 輸出的 HTTP 伺服器所發出的內容位元組相同。

它真的在我的瀏覽器中運作嗎?

是的。壓縮管線就是在瀏覽器分頁中執行的純 JSON.parse + JSON.stringify。沒有上傳、沒有 Service Worker 代理你的輸入,壓縮步驟本身完全不會觸發任何網路請求。唯一的出站流量是標準頁面資源(CSS、字型、分析)——你的 JSON 永遠不會到達 Ultim8Soft。

為什麼要壓縮 JSON?

壓縮後的 JSON 解析得到與美化版完全相同的值,但在傳輸與儲存上都更小。更小的負載意味著更低的 CDN 出網帳單、更快的行動端下載、更少的 Service Worker 記憶體壓力,以及能更緊湊地塞進 JWT、HTML data-* 屬性與 localStorage 這些定長封袋中。對於高頻 API,位元組節省會累積——每天 1 GB 流量的端點若節省 30%,每月可省下大約 9 GB。

壓縮會遺失資料嗎?

不會。JSON 壓縮只移除位於字串字面值 之外 的空白——空格、定位字元與換行——規範本身就把它們歸類為無意義字元。每個鍵、值、數字、跳脫序列與字串中的字元都會逐位元組保留。壓縮後的輸出可解析為與原輸入 deepEqual 的值。消失的只是裝飾性的縮排。

格式化工具與壓縮工具有什麼差別?

搭配的 JSON 格式化工具方向相反:它會展開空白讓人類能閱讀巢狀結構。壓縮器則將那些空白再剝回去,用於傳輸與儲存。這兩個工具互為反向操作——將一份 JSON 文件依序透過格式化器 → 壓縮器來回一次,得到的位元組字串與你最初餵給壓縮器的完全相同,因為兩者操作的都是解析後的值,而非裝飾性的標記。

本 JSON 壓縮工具使用的正是 Node.js、Deno 與瀏覽器執行環境共用的同一套解析器,輸出與一個樸素 HTTP 伺服器所發出的位元組完全一致。將任意 JSON 貼到上方,複製輸出,或下載成 .min.json 即可。