📋
← 返回教學列表

JSON 美化列印:如何格式化 JSON 以提高可讀性

· 標籤: json, pretty-print, json-formatter, json-indentation, developer-tools

什麼是 JSON 美化列印?

JSON 美化列印是將原始、緊湊(壓縮)的 JSON 資料重新格式化,加入適當的縮排、換行和空格,使其易於人類閱讀的過程。美化列印後的 JSON 文件使用一致的縮排和清晰的結構格式,展現巢狀物件和陣列的層次結構。

比較以下兩種相同資料的表示方式:

壓縮格式(難以閱讀):

{"users":[{"id":1,"name":"Alice","roles":["admin","editor"]},{"id":2,"name":"Bob","roles":["viewer"]}],"total":2}

美化列印格式(易於閱讀):

{
  "users": [
    {
      "id": 1,
      "name": "Alice",
      "roles": ["admin", "editor"]
    },
    {
      "id": 2,
      "name": "Bob",
      "roles": ["viewer"]
    }
  ],
  "total": 2
}

美化列印 vs 壓縮 JSON

選擇美化列印還是壓縮 JSON 取決於使用場景:

| 方面 | 美化列印 | 壓縮格式 | |--------|-------------|----------| | 可讀性 | 高——結構清晰 | 低——所有資料在一行 | | 檔案大小 | 較大(更多空格) | 較小(無空格開銷) | | 網路傳輸 | 大型資料傳輸較慢 | 更快、頻寬更少 | | 除錯 | 開發時理想 | 無法實際檢查 | | 生產環境使用 | 很少使用 | API 回應的標準做法 |

生產環境的 API 通常提供壓縮 JSON 以減少頻寬,而開發者在開發和除錯期間使用美化列印 JSON。

縮排風格

大多數格式化工具支援兩種常見的縮排風格:

2 空格縮排(最常見)

{
  "name": "Alice",
  "age": 30,
  "address": {
    "city": "New York"
  }
}

推薦用於: JavaScript/TypeScript 專案、現代 Web 開發和大多數通用場景。

4 空格縮排

{
    "name": "Alice",
    "age": 30,
    "address": {
        "city": "New York"
    }
}

推薦用於: Python 專案(PEP 8 風格)和偏好較寬縮排以提高清晰度的團隊。

Tab 縮排

有些開發者偏好基於 Tab 的縮排,特別是在以無障礙為重點的工作流程中,使用者可以在編輯器中調整 Tab 寬度。

選擇合適的縮排

大多數團隊標準化使用 2 空格,因為它在可讀性和水平空間效率之間取得了平衡。JavaScript 生態系統(Node.js、React、Vue)絕大多數使用 2 空格縮排。如果你在 Python 密集型環境中工作,4 空格縮排可能感覺更自然。關鍵是一致性——選擇一種風格並使用 Prettier 或 EditorConfig 等工具在整個專案中強制執行。

不同程式語言中的 JSON 美化列印

JavaScript / Node.js

const formatted = JSON.stringify(data, null, 2);
console.log(formatted);

Python

import json
formatted = json.dumps(data, indent=2)
print(formatted)

Java

import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
String formatted = mapper.writerWithDefaultPrettyPrinter()
    .writeValueAsString(data);

Go

import "encoding/json"
formatted, _ := json.MarshalIndent(data, "", "  ")
fmt.Println(string(formatted))

Ruby

require 'json'
puts JSON.pretty_generate(data)

如何美化列印 JSON

使用線上 JSON 格式化工具

最快的方法是使用免費的線上 JSON 格式化工具——貼上你的 JSON,即可獲得即時、格式化的輸出,並附帶語法突顯和錯誤偵測。

使用命令列工具

使用 jq(最受歡迎):

cat file.json | jq .

使用 Python:

python -m json.tool file.json

使用 Node.js:

node -e "const d = require('./file.json'); console.log(JSON.stringify(d, null, 2));"

瀏覽器開發者工具

所有主流瀏覽器都會在其網路(Network)標籤中自動格式化 JSON 回應:

  • Chrome DevTools:網路標籤自動美化列印 JSON 回應
  • Firefox Developer Tools:JSON 回應以可折疊的樹狀檢視顯示
  • Safari Web Inspector:JSON 預覽包含自動格式化

JSON 格式化的 IDE 外掛

VS Code

VS Code 擁有出色的內建 JSON 支援。使用 Shift+Alt+F(Windows/Linux)或 Shift+Option+F(macOS)來格式化任何 JSON 檔案。其他擴充功能可增強使用體驗:

  • Prettier:一致地格式化 JSON、JSONC 和許多其他語言
  • JSON Tools:使用鍵盤快速鍵排序、壓縮和格式化 JSON
  • JavaScript Booster:進階 JSON 操作功能

JetBrains IDE(IntelliJ、WebStorm、PyCharm)

  • 內建格式化工具:Ctrl+Alt+L(Windows/Linux)或 Cmd+Option+L(macOS)
  • 貼上時自動進行 JSON 驗證和格式化

Vim / Neovim

" 原地格式化 JSON
:%!jq .

進階 JSON 格式化選項

現代 JSON 格式化工具提供的不僅僅是基本縮排:

  • 鍵值排序:按字母順序排列物件鍵名,確保輸出一致
  • 語法突顯:以不同顏色標示鍵名、字串、數字和布林值
  • 可折疊樹狀結構:展開和折疊巢狀結構,方便導航
  • 行號:在除錯時參考特定位置
  • 錯誤突顯:以視覺化方式標記語法錯誤並附帶詳細訊息

JSON 可讀性的最佳實踐

  1. 格式化前務必驗證:格式化工具無法修復無效的 JSON。先使用 JSON 驗證器捕捉語法錯誤。
  2. 設定團隊標準:就縮排達成一致(2 空格是行業標準),並使用 Prettier 或 linter 強制執行。
  3. 保持巢狀層級淺:無論格式化得多好,深度巢狀的 JSON(4 層以上)都難以閱讀。在可能的情況下考慮重新組織結構。
  4. 使用有意義的鍵名:描述性、簡潔的鍵名比任何格式化工具更能提高可讀性。
  5. 新增結尾換行:以換行字元結束 JSON 檔案,以符合 POSIX 標準並避免 diff 噪音。

試用我們的免費線上 JSON 美化列印工具立即格式化和美化你的 JSON 資料,享受可自訂的縮排和語法突顯。