JSON 壓縮
免費線上JSON壓縮工具,支援JSON單行緊湊壓縮、JSON轉義/反轉義,內建智慧語法修復自動處理尾逗號等常見錯誤,即時顯示壓縮率,CodeMirror編輯器帶快捷鍵,純前端處理。
相關推薦
什麼是JSON壓縮(JSON Minify)?
JSON壓縮(JSON Minification)是指去除JSON文字中所有不必要的空白字元(空格、換行符\n、製表符\t、回車符\r)和註解(非標準但常見),將多層縮排的格式化JSON轉換為單行緊湊格式的過程。JSON壓縮不改變任何資料內容——鍵名、鍵值、資料型別(字串/數字/布林/null/陣列/物件)、巢狀結構完全保持不變,僅僅是移除了用於人類閱讀的格式空白。
JSON壓縮的核心價值在於減小資料體積。格式化JSON中的縮排空格和換行雖然對開發者友好,但在網路傳輸和儲存時屬於冗餘位元組。例如一個典型的API回應,格式化後可能有2KB,壓縮後可能只有1.2-1.5KB,體積減少25%-40%。在高併發API場景、行動裝置弱網環境、大規模設定檔分發中,JSON壓縮能顯著降低頻寬消耗、提升傳輸速度、減少伺服器開銷。生產環境中通常配合Gzip/Brotli等HTTP壓縮一起使用,但JSON Minify作為內容層壓縮仍然不可替代。
JSON壓縮的實作非常簡單:用JSON.parse()將文字解析為JavaScript物件,再用JSON.stringify(obj)不帶縮排參數序列化輸出即可——這正是本工具的核心實作方式。這種 parse + stringify 的方式天然保證了輸出的JSON是100%合法的,還能自動去除非法註解和尾逗號(配合錯誤修復)。需要注意:JSON壓縮與Gzip壓縮是兩個不同層面的最佳化——JSON Minify是內容層面去除冗餘空白,Gzip是傳輸層面的通用壓縮演算法,兩者可以疊加使用。
適用場景
- API開發中壓縮JSON請求/回應體,減少HTTP傳輸位元組數,提升介面回應速度(尤其是行動裝置弱網環境)
- 上線前精簡前端JSON設定檔、i18n語言包、Mock資料,減小靜態資源體積
- 在單元測試程式碼、Postman/curl指令中將JSON物件轉義為字串字面量嵌入程式碼
- 從日誌中複製的轉義JSON(如\"key\":\"value\")一鍵反轉義為可讀JSON
- 批次修復有尾逗號、單引號等語法錯誤的JSON檔案,一鍵轉為合法JSON
- 將格式化的JSON壓縮為單行後貼上到一行指令參數或聊天工具中分享
使用方法
- 將JSON內容貼上到左側編輯器,或點擊上傳按鈕選擇本機.json/.txt檔案,也可點擊「範例」按鈕載入範例
- 預設自動執行壓縮模式(400ms防抖),也可手動點擊「壓縮」按鈕或按快捷鍵 Shift+Cmd/Ctrl+C
- 需要轉義為程式碼字串時按 Shift+Cmd/Ctrl+E 或切換模式為轉義;需要還原轉義字串時按 Shift+Cmd/Ctrl+U
- 如果JSON有語法錯誤,底部會顯示紅色錯誤提示,有可修復錯誤時會出現「嘗試修復」按鈕,點擊即可自動修正
- 底部狀態列即時顯示壓縮前/後位元組數和壓縮率百分比,確認結果後點擊「複製」或「下載」按鈕
- 左右面板間的分割條可拖曳調整寬度,也可使用快捷鍵快速完成所有操作
功能特點
- 三合一功能:JSON緊湊壓縮 + 轉義(Escape)+ 反轉義(Unescape),覆蓋壓縮體積、嵌入程式碼字串、還原轉義三大場景
- 智慧語法修復:內建tryFixJSON引擎,自動偵測並修復尾逗號、單引號、註解、未閉合引號等常見JSON錯誤
- CodeMirror編輯器:左側輸入右側結果雙欄佈局,支援JSON語法突顯、可拖曳分割條、字型大小調節
- 即時壓縮統計:狀態列即時顯示原始大小(Bytes/KB/MB)、壓縮後大小、精確壓縮率百分比
- 鍵盤快捷鍵:Shift+Cmd/Ctrl+C壓縮、E轉義、U反轉義、O上傳、D下載、K清空,高效不用滑鼠
- 自動執行模式:貼上或編輯後400ms防抖自動壓縮/轉義,所見即所得
- 檔案上傳下載:支援拖入或點擊上傳.json/.txt檔案,處理後一鍵下載output.json
- 本機歷史記憶:localStorage自動儲存上次輸入內容,重新整理頁面不丟失
- 範例資料:一鍵載入範例JSON快速體驗,錯誤提示帶修復按鈕
- 純前端安全:所有運算本機瀏覽器執行,資料不上傳伺服器,斷網可用
常見問題
JSON壓縮和JSON格式化有什麼區別?
JSON格式化(美化/Beautify)是在鍵值對之間添加縮排、換行和空格,讓人眼更容易閱讀,適合開發除錯;JSON壓縮(Minify)則是去除所有不必要的空白字元(空格、換行、製表符、縮排),將多行JSON變為單行緊湊格式,目的是減小體積、提升傳輸效率,適合生產環境API傳輸、設定檔精簡和嵌入程式碼字串。兩者是互補操作——開發時看格式化版本,上線時用壓縮版本。
JSON轉義(Escape)是什麼?什麼時候需要用?
JSON轉義是指對JSON字串中的特殊字元添加反斜槓轉義(主要是把雙引號 " 轉成 \",反斜槓 \ 轉成 \\,換行轉成 \n 等),將多行JSON物件變成一個可以直接嵌入JavaScript、Java、Python等原始碼中的單行字串字面量。典型場景:在寫單元測試時把JSON回應作為字串內嵌到測試程式碼中;在Postman或curl指令中傳遞JSON字串;在設定檔中把JSON作為字串值。反轉義(Unescape)則是將轉義後的字串還原為標準JSON。
輸入的JSON有語法錯誤(如尾逗號),能壓縮成功嗎?
可以。本工具內建智慧語法修復引擎(tryFixJSON),在壓縮前會自動偵測並嘗試修復常見JSON錯誤:1)末尾多餘逗號(trailing comma),如 {"a":1,};2)單引號代替雙引號,如 {'a':1};3)未閉合的字串;4)JavaScript註解(// 和 /* */);5)末尾多餘逗號等。修復後再執行壓縮或轉義,確保輸出100%合法的JSON。如果偵測到可修復錯誤,會在面板上顯示「嘗試修復」按鈕,點擊即可一鍵修正。
JSON壓縮會不會丟失資料?壓縮率一般多少?
不會丟失資料。JSON壓縮只是移除格式空白字元(空格、換行、製表符),不改變任何鍵名、鍵值、資料型別和結構,經 JSON.parse 再 JSON.stringify 後與原資料完全一致。壓縮率取決於原JSON的格式化程度:如果原先是2空格縮排的格式化JSON,壓縮率通常在 20%-40%(去除縮排和換行);如果有大量連續空格或註解(修復後),壓縮率可達50%以上。狀態列即時顯示原始位元組數、壓縮後位元組數和精確壓縮率。
在壓縮敏感的JSON設定或介面資料時會外洩嗎?
不會。本工具採用純前端處理架構,所有JSON解析、壓縮、轉義、修復運算全部在您本機瀏覽器的JavaScript引擎中完成,資料不會透過任何網路請求上傳到外部伺服器,斷網也可以正常使用。您的API金鑰、資料庫設定、業務資料等敏感資訊始終留在本機。
支援哪些快捷鍵?
為提升效率,本工具提供了完整的鍵盤快捷鍵支援(macOS 用 ⌘+Shift,Windows 用 Ctrl+Shift):Shift+⌘/Ctrl+C 一鍵壓縮;Shift+⌘/Ctrl+E 轉義;Shift+⌘/Ctrl+U 反轉義;Shift+⌘/Ctrl+O 上傳檔案;Shift+⌘/Ctrl+D 下載結果;Shift+⌘/Ctrl+K 清空。輸入時工具也會400ms防抖自動執行目前模式,無需反覆點擊按鈕。
術語表
- JSON
- JavaScript Object Notation(JavaScript物件表示法),一種輕量級的資料交換格式,使用鍵值對和陣列結構,人可讀且機器易解析,是REST API的標準資料格式。
- Minify / 壓縮
- 移除程式碼/資料中所有不必要的字元(空格、換行、註解)以減小體積的過程,常見於JS/CSS/JSON等前端資源。
- Beautify / 格式化
- Minify的逆操作,添加縮排、換行、空格使JSON結構清晰可讀,也叫Prettify或Pretty Print。
- Escape / 轉義
- 在特殊字元前加反斜槓(如 " 變 \",換行變 \n),將多行JSON轉為可嵌入程式碼的單行字串字面量。
- Unescape / 反轉義
- 轉義的逆操作,將 \"、\n、\\ 等轉義序列還原為原始字元,恢復標準JSON格式。
- Trailing Comma / 尾逗號
- 物件或陣列最後一個元素後面多餘的逗號,JavaScript允許但JSON標準不允許,是最常見的JSON語法錯誤。
- Gzip / Brotli
- HTTP傳輸層通用壓縮演算法,與JSON Minify互補,Minify後再Gzip壓縮效果最佳。
- Payload / 載荷
- API請求或回應中實際傳輸的資料體(通常是JSON格式),壓縮Payload可直接降低頻寬消耗。
- CodeMirror
- 瀏覽器端程式碼編輯器元件,本工具用它實現JSON語法突顯、行號、括號匹配等專業編輯體驗。
JSON壓縮與常見壓縮方式對比
| 壓縮方式 | 壓縮層面 | 是否有損 | 可讀性 | 適用場景 |
|---|---|---|---|---|
JSON Minify | 內容層(去空白) | 無損 | 不可讀(單行) | 生產API傳輸、設定精簡 |
JSON Beautify | 內容層(加空白) | 無損 | 高可讀性 | 開發除錯、人工閱讀 |
Gzip | 傳輸層 | 無損 | 不可讀(二進位) | HTTP回應Content-Encoding |
Brotli | 傳輸層 | 無損 | 不可讀(二進位) | HTTPS靜態資源壓縮(比Gzip高20%) |
MessagePack | 序列化層 | 無損 | 不可讀(二進位) | 高效能RPC內部通訊 |
JSON轉義特殊字元對照表
| 原始字元 | 轉義後 | 名稱 | 說明 |
|---|---|---|---|
" | \" | 雙引號 | JSON字串必須轉義的最常見字元 |
\ | \\ | 反斜槓 | 轉義字元本身需要轉義 |
換行 | \n | Newline | 多行字串壓縮為單行必須轉義 |
製表符 | \t | Tab | 縮排Tab轉義 |
回車 | \r | Carriage Return | Windows換行符CRLF中的CR |
/ | \/ | 斜槓 | JSON標準允許但不強制轉義(可選) |
Authoritative References
- IETFJSON 官方規範 (RFC 8259)
- MDNJSON - MDN Web 文件
- WikipediaJSON - 維基百科
- JSON 壓縮
- CSV 轉 JSON
- JSON 轉 CSV
- JSON Diff
- JSON Escape / Unescape
- JSON 扁平化
- JSON 格式化
- JSON 產生器
- JSONPath 查詢
- JSON 合併
- JSON 修復
- JSON Schema 驗證器
- JSON 排序
- JSON Stringify
- JSON 轉 HTML 表格
- JSON 轉 Java
- JSON 轉 Markdown
- JSON 轉 SQL
- JSON 轉 TOML
- JSON 轉 TypeScript
- XML 轉 JSON
- JSON 轉 XML
- YAML 轉 JSON
- JSON 轉 YAML
- JSON 轉 Go
- JSON 轉 Rust
- JSON 轉 Swift
- JSON轉C#
- JSON 轉 C++
- JSON 轉 PHP
- JSON 轉 Python