← 全部工具

JSON 格式化與驗證

一句話說明: 把 JSON 排成有縮排、好閱讀的樣子,或壓成一行省空間;同時用標準規則檢查語法,告訴你錯在哪裡。

隱私:全部在你的瀏覽器裡計算,不會送到伺服器。

查核日期 2026-10-21 · 回報錯誤

互動工具需要 JavaScript。下方的公式、範例與說明不需要 JavaScript 也能閱讀。

JSON 是什麼

JSON(JavaScript Object Notation)是一種用文字表示資料的格式。API 回應、設定檔、資料匯出最常用它。標準是 RFC 8259。

JSON 只有六種值:物件 {}、陣列 []、字串、數字、true/false、null。規則比 JavaScript 嚴格:

  • 物件的鍵(key)一定要用雙引號。
  • 字串一定要用雙引號,不能用單引號。
  • 最後一個元素後面不能有逗號。
  • 不能有註解。
  • 數字不能有前導零(01),也不能是 NaN 或 Infinity。

「格式化」只是加上縮排與換行,資料本身不變。結構符號前後的空白在標準裡屬於「不重要的空白」,加或減都不影響內容。

使用情境

  1. 看懂 API 回應。 從瀏覽器開發者工具或 curl 複製出來的 JSON 常擠成一行。格式化後,巢狀結構和欄位一目了然。
  2. 找出設定檔為什麼讀不進去。 多數 JSON 設定檔(例如 package.json)不接受註解和尾逗號;只有少數工具明寫支援。驗證後會指出錯誤的位置。
  3. 壓縮後放進環境變數或資料庫欄位。 有些地方只接受一行文字。壓縮會移除所有不重要的空白,內容不變。

範例

輸入(一行):

{"name":"小明","age":28,"tags":["dev","ios"],"active":true,"note":null}

輸出(縮排 2 格):

{
  "name": "小明",
  "age": 28,
  "tags": [
    "dev",
    "ios"
  ],
  "active": true,
  "note": null
}

「壓縮」會把上面的輸出還原成原本那一行。

常見錯誤

  1. 最後多一個逗號(尾逗號)。 {"a": 1,} 在 JavaScript 物件裡合法,在 JSON 裡不合法。刪掉 } 或 ] 前面的逗號。
  2. 用了單引號,或鍵沒加引號。 {'a': 1} 和 {a: 1} 都不是 JSON。把鍵和字串都改成雙引號。
  3. 放了 `NaN`、`undefined` 或註解。 這些都不是 JSON 的值。NaN 可改成 null;註解要刪掉,或改用另一個欄位說明。
  4. 數字有前導零。 {"zip": 01} 不合法。郵遞區號、電話這種要保留前導零的資料,請存成字串 "01"。
  5. 超大整數被悄悄改掉。 瀏覽器用 64 位元浮點數存 JSON 數字。超過 9007199254740991(2⁵³−1)的整數會失去精度。例如 9007199254740993 讀進來會變成 9007199254740992。訂單編號、推文 ID 這類大整數,請存成字串。本工具格式化後也會受這個限制影響。

常見問題(FAQ)

格式化會改變我的資料嗎?
不會改變內容,只加減縮排與換行。唯一的例外是超過 2⁵³−1 的大整數:瀏覽器讀取時會失去精度。遇到這種數字,本工具會提示你。
JSON 可以寫註解嗎?
標準 JSON 不行。有些工具(例如 VS Code 的設定檔)接受「JSONC」這種加了註解的變體,但那不是標準 JSON,送給一般 API 會出錯。
錯誤訊息說第幾行、第幾個字,要怎麼看?
位置指的是解析器「發現看不懂」的地方,真正的錯誤常在它前面一點。例如少了一個逗號,錯誤會指到下一個鍵的開頭。往前檢查一兩行通常就能找到。
JSON 一定要用 UTF-8 嗎?
在不同系統之間交換時,RFC 8259 規定必須用 UTF-8。中文可以直接寫,也可以寫成 \u5c0f(代表「小」)這種跳脫形式,兩者代表同一個字。
我貼上的 JSON 會被上傳嗎?
不會。解析與排版都在你的瀏覽器裡計算,資料不會送到伺服器。API 回應裡常有權杖或個資,即使如此,仍建議先遮掉敏感欄位再貼。

來源(查核日期 2026-10-21)