開發者工具

JSON 格式化及語法檢查工具

在瀏覽器內檢查 JSON 語法、格式化或壓縮 JSON,保留數值寫法、字串轉義及重複鍵,並可預覽原文及檢視最外層結構。

關於JSON 格式化及語法檢查工具

檢查 JSON 語法,整理格式並保留原文

本工具按 RFC 8259 檢查 JSON 語法。可選擇 2 個空格、4 個空格或 Tab 縮排,亦可壓縮 JSON,移除字串以外的空白。處理時不會先將數值轉成 JavaScript Number,因此大整數 9007199254740993、1e400、-0 及小數的原有寫法都會保留。字串的轉義序列、鍵的次序及重複鍵亦不會被改寫。

語法有效不等於接收端一定能正確處理。不同軟件可能捨棄重複鍵、將數值四捨五入,或拒絕超出其數值範圍的資料;交換資料前仍須確認接收端的要求。

格式化、預覽及結構檢視有甚麼分別?

貼上 JSON 後,工具會隨輸入變更檢查語法。按「格式化」或「壓縮 JSON」會更新輸入欄位;「預覽」則顯示欄位目前的原文。「結構檢視」按每頁 100 項列出最外層內容,顯示類型及值,或直接子項目的數目。巢狀對象及數組只顯示摘要,不會展開成完整樹狀結構。

例如 {"名稱":"阿明","啟用":true,"項目":[1,2,3]} 有 3 個鍵、7 個值節點,最大深度為 2。根節點的深度為 0,每進入一層對象的值或數組元素,深度加 1。節點數包含根節點及所有層級的值;鍵數則計算所有對象的名稱與值配對,重複名稱亦分開計算。

根節點不限於對象或數組,也可以是字串、數值、布爾值或 null。結構中的類型名稱會附上 object、array、string、number、boolean 或 null,方便對照 JSON 規格。

輸入上限與錯誤位置

輸入及格式化結果最多 100,000 個 UTF-16 編碼單位,最大深度為 64,值節點最多 10,000 個。這些是本工具的處理上限,並非 JSON 規格的通用上限。多數常用中文字佔 1 個編碼單位,許多 emoji 佔 2 個;畫面上看到的一個字元亦可能由多個碼點組成。

語法錯誤會指出行、欄及由開頭起計的位置,全部由 1 開始。欄及位置以 UTF-16 編碼單位計算。本工具不接受 BOM。若格式化結果超出上限,會保留原有輸入;修改內容後便會重新檢查。「清除」只清空輸入,保留縮排及顯示方式。

支援的 JSON 語法

鍵名及字串須以雙引號括住。註解、結尾多餘的逗號、單引號字串、開頭帶零的整數、NaN 及 Infinity 都不屬於有效的 JSON。字串以外只接受空格、Tab、CR 及 LF 作為空白。根節點可以是對象、數組、字串、數值、true、false 或 null。

本工具不支援 JSON5、JSONC 的擴充語法,亦不會按 JSON Schema 或應用程式的業務規則驗證資料。

複製失敗、等候提示及私隱

「複製」的對象是目前語法有效的輸入。若瀏覽器不支援或權限設定阻擋複製,可按「選取輸入內容」後手動複製。約 5 秒仍未確認完成時會顯示等候提示;背景分頁的計時器可能延遲執行,提示亦可能較遲出現。

已開始但尚未結束的原生剪貼簿寫入無法取消。須等寫入結束,或重新載入頁面後才能再次自動複製。更改輸入後不會顯示舊內容的完成通知;只切換檢視方式或縮排設定則不會改變正在複製的文字。

JSON 在瀏覽器內處理。網站的使用情況統計及廣告仍會另外發出網絡請求。請勿輸入機密資料。

常見問題

Q. 格式化會改變大整數或小數嗎?
格式化及壓縮會保留數值的原有寫法,包括 9007199254740993、1e400 及 -0,不會自行轉換或四捨五入。不過,其他軟件讀取時仍可能改變數值或拒絕接收。
Q. 同一個鍵出現多次會怎樣?
工具會按輸入次序保留所有重複鍵,並在統計及結構檢視中分開計算。其他軟件可能只保留其中一個值,因此交換資料時應避免重複名稱。
Q. 最多可以處理多少 JSON?
輸入及格式化結果最多 100,000 個 UTF-16 編碼單位,最大深度為 64(根節點為 0),值節點最多 10,000 個。格式化結果若超出上限,原有輸入會保持不變。
Q. 可以驗證 JSON5、JSONC 或 JSON Schema 嗎?
不可以。本工具檢查 RFC 8259 的 JSON 語法,不接受 JSON5、JSONC 的註解或結尾逗號,也不接受 BOM 或 JSON 未允許的空白。JSON Schema 及應用程式規則的驗證不在處理範圍內。
Q. 輸入內容會上載至伺服器處理嗎?
JSON 在瀏覽器內處理。網站的使用情況統計及廣告仍會另外發出網絡請求。請勿輸入機密資料。

資料來源與規格

相關工具

有問題或建議? 聯絡 NanToo

為這項工具評分
5.0(1 則評分)