JSON 格式化與驗證完全指南:從入門到排錯實戰

JSON(更新於 2026年4月26日)

JSON 是什麼?為什麼格式化如此重要?

JSON(JavaScript Object Notation)是現代資料交換的標準格式,幾乎無處不在:

  • API 回應:絕大多數 Web API 回傳 JSON
  • 設定檔:package.json、tsconfig.json 等
  • 資料儲存:NoSQL 資料庫、本機儲存
  • 訊息傳遞:微服務間通訊

但原始 JSON 往往是壓縮在一行的,可讀性極差:

{"name":"張三","age":28,"address":{"city":"台北","district":"信義"},"skills":["JavaScript","TypeScript","React"],"projects":[{"name":"工具庫","url":"https://www.toolsku.com"}]}

格式化後清晰可讀:

{
  "name": "張三",
  "age": 28,
  "address": {
    "city": "台北",
    "district": "信義"
  },
  "skills": [
    "JavaScript",
    "TypeScript",
    "React"
  ],
  "projects": [
    {
      "name": "工具庫",
      "url": "https://www.toolsku.com"
    }
  ]
}

使用工具庫格式化 JSON

基本操作

  1. 開啟 JSON 格式化工具
  2. 貼上或輸入 JSON 文字
  3. 自動格式化並顯示結果
  4. 如有語法錯誤,會標註錯誤位置與原因

進階功能

  • 縮排設定:2 空格、4 空格或 Tab 縮排
  • 排序鍵名:按鍵名字母排序,方便比對
  • 壓縮/美化切換:一鍵在壓縮和美化間切換
  • 語法高亮:不同類型值用不同顏色顯示

常見 JSON 錯誤及排查

錯誤 1:尾逗號(Trailing Comma)

{
  "name": "張三",
  "age": 28,    ← 這裡多了逗號
}

修復:刪除最後一個屬性後的逗號。標準 JSON 不允許尾逗號。

錯誤 2:單引號代替雙引號

{
  'name': '張三'    ← JSON 必須用雙引號
}

修復:所有字串用雙引號包裹。

錯誤 3:註解

{
  // 這是註解    ← JSON 不支援註解
  "name": "張三"
}

修復:刪除註解,或使用 JSONC 格式(VS Code 支援)。工具庫的格式化工具會自動忽略註解。

錯誤 4:未跳脫的特殊字元

{
  "text": "第一行
第二行"        ← 換行符必須跳脫為 \n
}

修復:換行用 \n,定位字元用 \t,反斜線用 \\

錯誤 5:非字串鍵名

{
  name: "張三"    ← 鍵名必須用雙引號包裹
}

修復:鍵名加雙引號:"name": "張三"


JSON 與其他格式互轉

JSON ↔ YAML

YAML 更適合人類編寫設定檔,JSON 更適合機器解析:

# YAML 格式
name: 張三
age: 28
skills:
  - JavaScript
  - TypeScript

使用 JSON 與 YAML 互轉工具 一鍵轉換。

JSON ↔ TOML

TOML 是 Rust 生態常用的設定格式:

# TOML 格式
name = "張三"
age = 28
skills = ["JavaScript", "TypeScript"]

使用 JSON 與 TOML 互轉工具 一鍵轉換。

JSON ↔ CSV

適合將 API 回傳的 JSON 資料轉為表格格式:

使用 JSON 與 CSV 互轉工具 一鍵轉換。


JSON 進階操作

JSONPath 查詢

從複雜 JSON 中提取特定資料:

JSON: { "users": [{"name": "張三", "age": 28}, {"name": "李四", "age": 32}] }
JSONPath: $.users[?(@.age > 30)].name
結果: ["李四"]

使用 JSONPath 查詢工具 執行查詢。

JSON Diff 對比

對比兩個 JSON 的差異,適合:

  • 對比 API 請求和回應
  • 檢查設定變更
  • 測試資料對比

使用 JSON 對比工具 視覺化差異。

JSON 產生程式碼類型

從 JSON 自動產生 TypeScript/Go/Java/SQL 類型定義:

{ "name": "張三", "age": 28 }

產生 TypeScript:

interface Root {
  name: string;
  age: number;
}

使用 JSON 轉 TypeScript 工具JSON 轉 Go 工具 等。


常見問題

JSON 檔案太大無法格式化?

工具庫的 JSON 格式化在瀏覽器本機執行,不受伺服器限制。即使幾十 MB 的 JSON 檔案也能處理。

如何驗證 JSON 是否符合特定結構?

先格式化確認語法正確,再使用 JSONPath 查詢驗證關鍵欄位是否存在。

JSON 和 JSON5 有什麼區別?

JSON5 是 JSON 的超集,支援註解、尾逗號、單引號等。工具庫格式化工具相容 JSON5 語法。


總結

JSON 處理是開發者的日常必備技能。工具庫提供完整的 JSON 工具鏈:格式化YAML 互轉TOML 互轉CSV 互轉JSONPath 查詢對比產生類型,全部在瀏覽器本機處理,安全高效。

#JSON#格式化#开发#教程#数据格式