如何格式化或驗證 JSON?

貼上 JSON,工具就會依你選的縮排美化輸出,或把它壓縮成一行,並在存在語法錯誤時報告第一個錯誤的確切位置。解析使用 JavaScript 內建的 JSON 解析器,所以輸出必然合法。

完全在瀏覽器內執行 · 不上傳 · 不需要帳號 · 無浮水印

  1. 把 JSON 貼進左邊的框。
  2. 選擇縮排,或用「壓縮」把它變成一行。
  3. 複製結果,或修正工具指出的錯誤。

這個頁面能做什麼

什麼時候該用這個工具

  • 閱讀一段被壓縮過的 API 回應或一行的設定檔。
  • 在把 JSON 貼到別處之前,找出括號或逗號錯誤。
  • 為請求主體壓縮 JSON。

什麼時候不該用

  • 資料有數十 MB —— 它會在主執行緒上被完整解析進記憶體。
  • 你需要 JSON5、註解、尾隨逗號或結構描述驗證。
  • 你需要 jq 式的查詢、比對或轉換。

和其他做法相比,差在哪裡

編輯器、jq 與命令列驗證器能串流處理大檔案、依結構描述驗證、保留註解,並以精確的原始碼範圍解釋錯誤。本頁呼叫瀏覽器的 JSON.parse,並如實報告引擎給出的資訊,而它並不總是點出真正引發問題的那個字元。它是把一段回應變得可讀的捷徑,而不是一個 JSON 工作台。

你的檔案去了哪裡

哪裡也沒去。這個頁面只載入了做事的程式碼,之後你開啟的檔案由你自己的瀏覽器讀取。沒有上傳步驟,沒有暫時的伺服器副本,也沒有需要你信任的清理流程——資料從未經過網路,所以事後沒有任何東西需要刪除。你可以自己確認:在工具執行時打開瀏覽器的網路面板,看它一直保持安靜。

關於這個工具的問題

為什麼解析器拒絕一段在我的程式碼裡能跑的 JSON?
JSON 是 JavaScript 的一個更嚴格子集。它不允許註解、尾隨逗號、單引號字串、不加引號的鍵名,也不允許 NaN 與 Infinity 這兩個值。如果你貼上的是 JavaScript 物件實字,請為鍵名加上引號、刪掉註解並移除尾隨逗號 —— 工具會告訴你第一個問題在第幾行,省得你在檔案裡到處找。
排序鍵名會改變我的資料嗎?
不會,只改變物件鍵名寫出的順序。值不受影響,陣列也保持原有順序,因為陣列的順序是有意義的。當你想讓兩份 JSON 文件無論各自如何產生都能乾淨地比對時,排序就很有用。
我貼上的 JSON 會被傳送到任何地方嗎?
不會。解析與格式化使用的是本頁中已經在執行的 JavaScript 引擎,文字始終不離開這個分頁。你可以開啟開發者工具的網路面板,看著它在你格式化的過程中一直保持空白。

同組的其他工具

使用指南