JSON 格式化與驗證 - 美化、壓縮及檢查 JSON
貼上原始 JSON,以偏好的縮排將它美化、為正式環境壓縮,或透過精確的錯誤位置進行驗證。
格式化工具使用瀏覽器原生 JSON 引擎解析文字,因此在這裡通過的內容正是 JSON.parse 接受的內容。所有操作都在本機執行,不會上傳任何資料。
JSON 格式化與驗證 - 美化、壓縮及檢查 JSON
貼上原始 JSON,以偏好的縮排將它美化、為正式環境壓縮,或透過精確的錯誤位置進行驗證。
隱私:你的資料不會離開瀏覽器。解析、格式化與驗證全都在你的裝置上完成。
運作方式:使用 JSON.parse 解析輸入,再以你選擇的縮排透過 JSON.stringify 重新序列化(壓縮時不使用縮排)。
關於 JSON 格式化與驗證工具
JSON(JavaScript 物件表示法)是現代 API、設定檔、日誌管線與資料交換的通用語言。機器很容易產生它,人類閱讀卻常常很痛苦:API 回應通常是一行數千字元的壓縮文字,而手動編輯的設定檔可能因為少了一個逗號就無法載入。這個 JSON 格式化工具在一個地方解決兩個問題——將緊湊的 JSON 美化成有縮排、易讀的結構,把漂亮的 JSON 壓縮回最小形式,並以精確的行與欄位置檢查任何輸入的語法錯誤。
本工具刻意採用瀏覽器原生 JSON 引擎,而非自訂解析器。當你按下「格式化」、「壓縮」或「驗證」時,文字會經過 JSON.parse,也就是 JavaScript 程式在執行時使用的相同實作。因此驗證結果是權威的:如果它在這裡能解析,就能在 Node.js 和所有現代瀏覽器中解析;如果在這裡失敗,你會取得引擎本身的錯誤訊息,並被轉換成行與欄,讓你能直接跳到問題所在。常見原因包括結尾逗號、使用單引號而非雙引號、未加引號的屬性名稱、註解(標準 JSON 不允許)以及從終端機複製時帶入的多餘控制字元。
格式化選項涵蓋實際專案使用的樣式:兩個空格縮排(大多數 JavaScript 生態系的預設值)、四個空格或定位字元。可選的鍵排序會遞迴重寫每個物件,按字母順序排列屬性;當你需要比較兩個負載或讓設定檔維持標準順序時非常有用——請注意,它只改變鍵的順序,絕不改變值,而 JSON 語意不依賴鍵的順序。成功操作後,工具也會顯示快速統計:頂層鍵的數量(或陣列元素的數量)以及結果的精確位元組大小,當你關注負載預算或請求本文大小限制時很方便。
壓縮是美化的反向操作:移除所有無意義的空白,產生最精簡的等價文件。將 JSON 嵌入環境變數、查詢字串或對頻寬敏感的 API 呼叫前,可以先使用它。
一切都在瀏覽器分頁本機完成。你貼上的文字絕不會傳送到伺服器、儲存或記錄,因此適合令牌、客戶資料或內部設定等私密負載。值得注意的限制是:極大型文件(數百 MB)會受到瀏覽器記憶體限制,而擴充 JSON 的格式——JSON5、含註解的 JSONC 或 NDJSON 串流——必須先轉換成嚴格 JSON 才能通過驗證。
JSON 格式化工具範例
典型輸入與各項操作產生的結果。
| 輸入 | 操作與輸出 | 備註 |
|---|---|---|
| {"name":"Ada","tags":["math","code"]} | 格式化 → 以所選縮排分成多行 | 非常適合閱讀壓縮的 API 回應。 |
| 一份 40 行的漂亮格式設定檔 | 壓縮 → 移除所有空白,合併成一行 | 最小的等價文件,適合環境變數與請求本文。 |
| {"id": 1, "name": "Ada",} | 驗證 → 第 1 行錯誤:不允許結尾逗號 | 嚴格 JSON 禁止結尾逗號、註解與單引號。 |
| {"z":1,"m":2,"b":3}(已啟用鍵排序) | 格式化 → 每一層的鍵重新排列為 b、m、z | 排序鍵可讓兩個負載之間的差異保持穩定。 |
如何格式化與驗證 JSON
- 將 JSON 貼到輸入框——可以是壓縮的 API 回應、設定檔或手寫片段。
- 選擇所需的縮排(2 個空格、4 個空格或定位字元),也可以啟用依字母順序排列鍵。
- 按下「格式化」取得漂亮輸出,按「壓縮」取得緊湊形式,或按「驗證」只檢查語法。
- 如果解析失敗,閱讀錯誤訊息,跳到回報的行與欄修正問題。
- 從結果面板複製輸出;顯示的位元組大小能幫助你追蹤負載限制。
JSON 格式化工具常見問題
為什麼我的 JSON 驗證失敗?
最常見的原因是結尾逗號、字串或鍵使用單引號、未加引號的屬性名稱、註解,以及未跳脫的控制字元。嚴格 JSON 不允許這些內容。錯誤訊息會包含解析器停止的行與欄,通常就在問題字元所在處或其後。
在這裡貼上敏感資料安全嗎?
安全。格式化工具完全在瀏覽器中使用原生 JSON 引擎執行——你貼上的內容不會透過網路傳送、儲存或記錄。載入頁面後即使中斷網路,它仍會繼續運作。
壓縮會改變我的資料嗎?
不會。壓縮只移除標記之間無意義的空白;每個值、字串與數字在語意上都完全相同。解析壓縮後的輸出會得到與原文完全相同的資料結構。
「排序鍵」選項做什麼?
它會遞迴重寫每個物件,使所有巢狀深度的屬性都按字母順序排列。值與陣列不會改變。由於 JSON 物件鍵的順序沒有意義,排序是取得適合差異比較與版本控制之標準輸出的安全方式。
鍵數量與位元組大小代表什麼?
鍵數量是頂層物件屬性的數量(如果根元素是陣列,則是元素數量)。位元組大小是結果以 UTF-8 編碼後的長度,HTTP 負載限制在意的是它,而不是字元數。
可以格式化 JSON5 或含註解的檔案嗎?
不能直接格式化。本工具依 RFC 8259 定義驗證嚴格 JSON,註解或 JSON5 的未加引號鍵等便利語法都會被回報為錯誤。請先移除註解或將檔案轉換成嚴格 JSON,再在這裡格式化。