同一份 JSON:開發時要 2 空格縮排方便 Code Review,上線卻要 minify 省頻寬——格式化策略選錯,要麼 diff 看不清,要麼響應體大一圈。
本文面向前後端與測試工程師,講解 JSON 格式化的目的、開發/生產不同策略、5 步推薦工作流,以及校驗、排序鍵、JSON5 等常見誤區。閱讀完成後,你可以用 JSON 工具箱在瀏覽器本機完成格式化與壓縮——資料不上傳。
為什麼格式化策略很重要
格式化改變的是「呈現方式」,不是資料語義。但呈現方式直接影響:Git diff 是否可讀、日誌是否便於 grep、HTTP 響應體積與首包時間。
我們見過團隊把 minify 後的 JSON 提交進倉庫,導致 PR 無法 review;也見過生產介面返回未壓縮的 500KB 美化 JSON,拖慢移動端弱網體驗。分場景處理是基本素養。
JSON 格式化是什麼
JSON 格式化(Pretty Print)是在不改變資料的前提下,插入縮排與換行,使結構層級一目瞭然。壓縮(Minify)則移除所有非必要空白,得到單行或最短表示。
格式化 vs 壓縮
| 操作 | 空白 / 換行 | 典型用途 |
|---|---|---|
| 格式化 | 保留並規範化 | 開發、除錯、檔案樣例 |
| 壓縮 | 移除 | 生產 API、訊息佇列、日誌歸檔 |
| 校驗 | 不改動結構,僅檢查語法 | 格式化前必做 |
開發環境 vs 生產環境
| 維度 | 開發 / 測試 | 生產 / 傳輸 |
|---|---|---|
| 縮排 | 2 或 4 空格,團隊統一 | 壓縮,無縮排 |
| 鍵排序 | 可選,便於 diff | 通常不排序,保持語義順序 |
| 檔案組織 | 大 JSON 按模組拆分 | 單 payload 優先小體積 |
| 是否提交倉庫 | 格式化後提交 | 不提交 minify 產物(除非有構建步驟) |
誰需要關注格式化規範
| 角色 | 關注點 | 建議 |
|---|---|---|
| 前端 | mock 資料、介面聯調樣例 | 2 空格,與 Prettier 一致 |
| 後端 | API 檔案示例、日誌輸出 | 檔案美化,介面響應壓縮 |
| 測試 | fixture、期望 JSON | 格式化 + 排序鍵,穩定 diff |
| DevOps | 配置 JSON、匯出資料 | 版本庫內可讀,下發前按需壓縮 |
推薦工作流:5 步
- 貼上或匯入原始 JSON(可能來自日誌、介面複製)
- 校驗語法:排除尾逗號、單引號、註釋等非法內容
- 選擇縮排:2 空格(前端常見)或 4 空格(部分後端規範)
- 可選排序鍵:便於對比兩份結構相同的 JSON
- 複製結果到編輯器 / 或切換壓縮模式用於生產樣例
示例:格式化前後
壓縮單行:
{"user":{"id":1,"name":"Alice"},"tags":["dev","json"]}格式化後(2 空格):
{
"user": {
"id": 1,
"name": "Alice"
},
"tags": ["dev", "json"]
}
常見錯誤與最佳實踐
未校驗直接格式化
含語法錯誤的文字無法正確格式化。推薦流程:貼上 → 校驗 → 格式化 → 複製。
混用 JSON5 語法
本工具僅支援標準 JSON:無雙引號鍵名、無尾逗號、無註釋。若從 JS 物件複製,請先轉為合法 JSON。
大檔案處理
超過 2MB 的 JSON 在瀏覽器中格式化可能卡頓。建議用 CLI(jq)或按子樹拆分處理。
格式化與其他工具配合
| 下一步 | 工具 | 目的 |
|---|---|---|
| 對比變更 | JSON Diff | 檢視欄位增刪改 |
| 提取欄位 | JSONPath | 確認路徑與值 |
| 轉其他格式 | JSON → YAML 等 | 給運維或配置系統使用 |
| 結構約束 | JSON Schema(外部) | 釋出前校驗契約 |
常見問題 FAQ
格式化會改變資料內容嗎?
不會。僅改變空白與換行,解析後的物件與壓縮前語義相同。
2 空格和 4 空格選哪個?
無絕對標準。前端專案多與 Prettier 預設 2 空格一致;Java 等後端專案常見 4 空格。團隊內統一即可。
鍵排序有什麼用?
當兩份 JSON 內容相同但鍵順序不同時,排序後 diff 更清晰。注意不要改變有順序要求的業務陣列。
壓縮後的 JSON 還能還原成可讀格式嗎?
可以。對 minify 結果再次執行格式化即可,資料不會丟失。
資料會上傳到伺服器嗎?
不會。JSON 工具箱純前端處理,適合貼上含內網欄位的樣例(敏感資訊仍建議脫敏)。
為什麼格式化失敗提示語法錯誤?
常見原因:尾逗號、單引號字串、未轉義換行、或使用 JSON 不支援的註釋。請先用校驗工具定位行號。
總結與下一步
格式化是低成本提升協作效率的手段:開發可讀、生產精簡、操作前先校驗。把「校驗 → 格式化 → 使用」固化為團隊習慣,可減少低階 JSON 錯誤進入倉庫或線上。
建議在編輯器中配置儲存時格式化,並在 CI 中對關鍵 fixture 做 JSON 語法檢查;大版本釋出前配合 Diff 工具審查介面樣例變更。