跳到正文
馬克工具箱

JSON 格式化與校驗

貼上 JSON 即可美化、壓縮,或找出哪裡寫錯了:報錯會給出行號、列號和原因說明。64 位 ID 這類大整數原樣保留,資料只在你的瀏覽器裡處理。

在瀏覽器本地執行,輸入的內容和檔案都不會上傳

處理設定

輸入

輸出

使用步驟

  1. 在左側貼上或輸入 JSON,輸入時即時校驗。
  2. 選擇縮排方式:2 個空格、4 個空格、Tab,或選「壓縮」變成一行。
  3. 勾選「鍵名排序」讓物件的鍵按字母排序,方便對比兩份資料。
  4. 有錯誤時會提示行列位置;沒有錯誤就可以複製或下載結果。

引數說明

縮排
2 個空格最常見(npm、Prettier 預設);4 個空格與 Python 的 json.dumps(indent=4) 一致;壓縮會去掉所有空白,體積最小。
鍵名排序
在所有層級按鍵名(轉義後的實際值)排序,不會改變陣列的順序。
大整數
數字按原文保留。很多格式化工具會把 JSON 解析成 JavaScript 數字,悄悄把 12345678901234567890 變成 12345678901234567000。

常見 JSON 錯誤及修復方法

提示 常見原因
出現了意外的字元 ' 用了單引號而不是雙引號
末尾多餘的逗號 最後一項後面多了逗號:[1, 2,]
出現了意外的字元 / 從 JavaScript 裡複製了 // 註釋
內容提前結束 缺少 } 或 ],常見於複製不完整
控制字元必須轉義 字串裡有真實的 Tab 或換行,應寫成 \t、\n
文件結束後還有多餘內容 貼上了兩段 JSON,或右括號後面還有其他文字

示例

輸入:

{"id":9007199254740993,"name":"Ada","tags":["math","code"]}

用 2 個空格格式化後,注意 ID 沒有被改變:

{
  "id": 9007199254740993,
  "name": "Ada",
  "tags": [
    "math",
    "code"
  ]
}

常見問題

為什麼提示「JSON 不允許末尾多餘的逗號」?

標準 JSON(RFC 8259)不允許物件或陣列最後一項後面有逗號,雖然 JavaScript 允許。刪掉 } 或 ] 前面的那個逗號即可。

JSON 裡能用單引號或註釋嗎?

不能。JSON 字串必須用雙引號,註釋也不屬於 JSON 格式。tsconfig.json 等檔案能寫註釋,是因為對應工具使用了寬鬆的 JSONC 解析器。

我的 JSON 會上傳到伺服器嗎?

不會。解析和格式化都在瀏覽器裡完成,介面返回、Token、配置檔案都不會離開你的裝置。

為什麼大 ID 在其他工具裡會變?

JavaScript 用 64 位浮點數儲存數字,只能精確表示到 9,007,199,254,740,991。本工具不做數字轉換,超出這個範圍的 ID 也能保持不變。

能處理多大的檔案?

幾 MB 的 JSON 在筆記本上可以瞬間完成格式化。幾百 MB 的檔案建議使用 jq 等命令列工具。

隱私說明

本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。

相關工具