如何格式化或驗證 JSON?
貼上 JSON,工具就會依你選的縮排美化輸出,或把它壓縮成一行,並在存在語法錯誤時報告第一個錯誤的確切位置。解析使用 JavaScript 內建的 JSON 解析器,所以輸出必然合法。
完全在瀏覽器內執行 · 不上傳 · 不需要帳號 · 無浮水印
- 把 JSON 貼進左邊的框。
- 選擇縮排,或用「壓縮」把它變成一行。
- 複製結果,或修正工具指出的錯誤。
這個頁面能做什麼
- 依 2 個空格、4 個空格或 Tab 縮排美化輸出
- 壓縮成一行
- 報告第一個語法錯誤的行號與欄號
- 排序鍵名,並可逸出非 ASCII 字元
什麼時候該用這個工具
- 閱讀一段被壓縮過的 API 回應或一行的設定檔。
- 在把 JSON 貼到別處之前,找出括號或逗號錯誤。
- 為請求主體壓縮 JSON。
什麼時候不該用
- 資料有數十 MB —— 它會在主執行緒上被完整解析進記憶體。
- 你需要 JSON5、註解、尾隨逗號或結構描述驗證。
- 你需要 jq 式的查詢、比對或轉換。
和其他做法相比,差在哪裡
編輯器、jq 與命令列驗證器能串流處理大檔案、依結構描述驗證、保留註解,並以精確的原始碼範圍解釋錯誤。本頁呼叫瀏覽器的 JSON.parse,並如實報告引擎給出的資訊,而它並不總是點出真正引發問題的那個字元。它是把一段回應變得可讀的捷徑,而不是一個 JSON 工作台。
你的檔案去了哪裡
哪裡也沒去。這個頁面只載入了做事的程式碼,之後你開啟的檔案由你自己的瀏覽器讀取。沒有上傳步驟,沒有暫時的伺服器副本,也沒有需要你信任的清理流程——資料從未經過網路,所以事後沒有任何東西需要刪除。你可以自己確認:在工具執行時打開瀏覽器的網路面板,看它一直保持安靜。
關於這個工具的問題
- 為什麼解析器拒絕一段在我的程式碼裡能跑的 JSON?
- JSON 是 JavaScript 的一個更嚴格子集。它不允許註解、尾隨逗號、單引號字串、不加引號的鍵名,也不允許 NaN 與 Infinity 這兩個值。如果你貼上的是 JavaScript 物件實字,請為鍵名加上引號、刪掉註解並移除尾隨逗號 —— 工具會告訴你第一個問題在第幾行,省得你在檔案裡到處找。
- 排序鍵名會改變我的資料嗎?
- 不會,只改變物件鍵名寫出的順序。值不受影響,陣列也保持原有順序,因為陣列的順序是有意義的。當你想讓兩份 JSON 文件無論各自如何產生都能乾淨地比對時,排序就很有用。
- 我貼上的 JSON 會被傳送到任何地方嗎?
- 不會。解析與格式化使用的是本頁中已經在執行的 JavaScript 引擎,文字始終不離開這個分頁。你可以開啟開發者工具的網路面板,看著它在你格式化的過程中一直保持空白。