跳到主要內容

JSON 格式化與驗證

美化、壓縮並驗證 JSON,能指出錯誤的確切位置、提供修正提示,還有可收合的樹狀檢視;資料只在你的瀏覽器中處理,不會上傳。

格式化後的 JSON 會顯示在這裡。
在瀏覽器中執行・不需上傳運作方式

JSON 格式化與驗證 使用方法

  1. 1

    貼上或開啟 JSON

    貼到左側的方塊、將 .json 檔案拖放到上面,或使用「開啟檔案」。也可以點選「範例」看看運作方式。

  2. 2

    選擇排版方式

    選擇 2 個空格、4 個空格或 Tab;若想讓順序固定,就開啟「鍵名排序 A–Z」,再按「格式化 JSON」或「壓縮」。

  3. 3

    修正錯誤

    JSON 無效時,請查看行號、欄位與提示,用「前往行」跳到該處,或按「修復 JSON」。

  4. 4

    複製、下載或瀏覽

    複製結果、下載成 .json,或開啟「樹狀」分頁來摺疊節點並複製 JSONPath。

限制與 Pro

免費、不需註冊:可開啟最大 50 MB 的檔案。超過 200,000 個字元的輸入會在背景工作程序中處理,超過 2 MB 的檔案會在不載入編輯器的情況下格式化,樹狀檢視則支援最大 2 MB 的文件。

Pro 可移除廣告;格式化工具的限制在所有方案中都相同。 查看 Pro

關於 JSON 格式化與驗證

貼上 API 回應、設定檔或一行記錄,這個格式化工具會依 JSON 標準(RFC 8259)檢查,再以 2 個空格、4 個空格或 Tab 縮排輸出,也可以壓縮成單行。鍵名可依字母排序,方便比對同一份文件的兩個版本。

JSON 有錯時,你會看到行號與欄位、用白話說明的預期內容、指向確切位置的插入符號,以及可能的修正方式:上一行結尾漏了逗號、多餘的結尾逗號、單引號、沒加引號的屬性名稱、註解、Python 的 True 或 None、NaN、字串中的原始換行,或是沒有關閉的括號。「修復 JSON」可一次修正這些近似 JSON 的寫法,並列出每項變更,讓你檢查或復原。

數字與跳脫序列都會照原樣保留,所以像 12345678901234567890 這樣的 ID 不會像 JSON.parse 那樣被四捨五入。樹狀檢視可摺疊物件與陣列,顯示各自包含的鍵或項目數量,並複製任一節點的 JSONPath 或值。

大型檔案由背景工作程序處理,格式化 50 MB 的匯出檔時頁面也不會卡住。本工具不會依 JSON Schema 驗證、不會轉成 YAML 或 CSV,也不能用 JSONPath 運算式查詢資料。

隱私

解析、格式化與修復都在這個瀏覽器分頁中完成,你貼上或開啟的 JSON 不會上傳,也不會傳送給任何服務。只有縮排與鍵名排序的選擇會儲存在本機儲存空間,文件本身在你關閉頁面後不會保留。

功能

看得懂、改得了的錯誤訊息

提供行號、欄位、指向問題處的插入符號與建議修正,而不是一句「Unexpected token」。

一鍵修復

將含有註解、結尾逗號、單引號或未加引號鍵名的 JSON 轉為嚴格的 JSON。

可摺疊的樹狀檢視

可摺疊任何物件或陣列,並複製節點的 JSONPath 或值。

JSON 格式化與驗證:常見問題

為什麼看起來沒問題的那一行,卻顯示「Expected a comma」?
解析器要讀到下一個屬性才發現問題,所以錯誤會指向那一行的開頭。通常是上一行結尾、前一個值後面漏了逗號,提示中會指出是哪一行。按「前往行」可跳到該處,或按「修復 JSON」自動補上漏掉的逗號。
「修復 JSON」會更動哪些內容?
它會移除 // 與 /* */ 註解、刪除結尾與重複的逗號、轉換單引號字串、為未加引號的屬性名稱加上引號、把 True、False、None 換成小寫的 JSON 寫法、將 NaN 與 Infinity 改成 null、跳脫字串中的原始換行,並補上未關閉的括號。完成後會列出每項變更,按「復原」即可還原原始文字。
格式化會改變我的數字或 Unicode 文字嗎?
不會。格式化工具會讓每個數字與字串都維持輸入時的樣子,包括超出 JavaScript 安全範圍的長整數、像 1.50 這樣的結尾零,以及 \u00e9 之類的跳脫字元。只有空白會改變,若你要求排序,鍵的順序也會改變。壓縮會移除字串以外的所有空白。
可以格式化多大的 JSON 檔案?
最大 50 MB 的檔案可直接開啟。超過 200,000 個字元的內容會在背景工作程序中處理,並顯示進度列與「取消」按鈕,頁面不會當掉。超過 2 MB 的檔案會在不載入編輯框的情況下格式化,樹狀檢視則限於 2 MB 以內的文件。
能偵測重複的鍵嗎?
可以,適用於 1 MB 以下的文件。JSON 語法在技術上允許重複的鍵,所以文件仍視為有效,但你會看到警告,列出每個重複的鍵及其所屬物件的路徑。多數解析器會默默只保留最後一個值,這是設定錯誤的常見原因。