免費轉換器

JSON 格式化 和驗證工具

在瀏覽器中即時格式化和驗證JSON。無需上傳,完全私密且免費。

將JSON檔案拖放到此處

支援.json檔案。或在上方貼上您的JSON內容。

關於此工具

JSON 格式(通常稱為漂亮列印或美化)採用緊湊的 JSON 並添加空格(換行符、縮排、一致的間距),以使結構對人類讀者可見。緊湊 JSON 是正確的傳輸格式:它最大限度地減少了線路和儲存上的位元組數。格式化 JSON 是正確的檢查格式:縮排的層次結構一目了然地顯示巢狀結構,使差異有意義,並讓開發人員無需在腦海中解析文件即可定位特定欄位。

此格式化程式將輸入解析為 JSON 以確認其有效,然後以一致的縮排重新發出它。無效輸入會產生指向語法問題的錯誤。無論來源有多緊湊或多混亂,有效輸入都會重新格式化。縮排預設為兩個空格,符合最常見的 JavaScript 約定。

格式化程式還提供縮小(逆操作),它會移除所有不必要的空格以產生最小的有效 JSON。最小化輸出有利於生產傳輸;格式化輸出對於開發和調試很有用。

為什麼要格式化 JSON

在沒有縮排的情況下讀取深度嵌套的 JSON 基本上是不可能的——該結構在技術上是存在的,但不可見。即使是中等複雜的 JSON 也會從格式中受益匪淺。程式碼審查者、API 偵錯者和任何試圖理解資料負載的人都需要格式化 JSON 來查看實際內容。

格式化也會捕獲錯誤。如果 JSON 在格式化過程中無法解析,錯誤訊息會標識語法問題的確切位置 - 通常是缺少逗號、不帶引號的鍵或生產系統未標記的雜散尾隨逗號。格式化程式是最簡單的 JSON 驗證器。

使用方法

貼上 JSON,點擊格式。

  1. 貼上您的 JSON: 將原始或壓縮 JSON 貼到輸入區域。拖放 .json 檔案也可以。
  2. 選擇縮排: 預設為 2 個空格。對於遵循該約定的項目,請使用 4 個空格;如果下游工具需要,則使用製表符。
  3. 格式: 輸入透過 JSON.parse 進行解析以確認有效性,然後使用 JSON.stringify 和所選縮排進行序列化。輸入中的錯誤會產生一條解析錯誤訊息,標識問題位置。
  4. 複製或下載: 將格式化的 JSON 複製到剪貼簿或另存為 .json。輸出在結構上與輸入相同,但具有一致的空格。

常見用例

技術細節

格式化程式使用 JSON.parse 和 JSON.stringify,每個 JavaScript 執行時期都提供相同的一對。解析遵循 RFC 8259(目前的 JSON 規範),接受嚴格的 JSON,但拒絕 JavaScript 物件文字、註解、尾隨逗號和其他 JSON5 擴充。

JSON.stringify 接受縮排參數:數字(空格)或字串(自訂縮排字符,例如製表符)。格式化程式公開這兩個選項。輸出按物件的來源順序排序(自 ES2015 起,在所有主要引擎中保留屬性插入順序)。

邊緣情況:超出 Number.MAX_SAFE_INTEGER 的大數字在解析時會遺失精確度(已知的 JSON 限制;對超過 2^53 的 ID 使用字串值)。字串中的 Unicode 轉義符號以字面意思保留。每行的尾隨空白被刪除。

最佳實踐

常見問題

此工具可偵測哪些類型的 JSON 錯誤?
該工具根據 RFC 8259 JSON 規範檢測遺失的逗號、不匹配的方括號/大括號、無效字串轉義、尾隨逗號、單引號字串以及其他語法違規。
它可以處理非常大的 JSON 檔案嗎?
是的。格式化程式使用本機 JavaScript 解析在瀏覽器中處理 JSON,因此它可以有效地處理高達幾兆位元組的檔案。對於極大的檔案 (50MB+),處理時間取決於您的裝置。
它支援帶註釋的 JSON (JSONC) 嗎?
標準 JSON 不允許註解。如果您的輸入包含註釋,驗證器會將其標記為錯誤。對於 JSONC 支持,請在格式化之前刪除註解。
格式化會改變我的資料值嗎?
不會。格式化僅調整空格和縮排-您的資料類型、值和結構保持完全相同。
是否支援 JSON5 功能(註解、尾隨逗號)?
不會。格式化程序嚴格遵循 RFC 8259。 JSON5 特性會導致解析錯誤。若要使用 JSON5,​​請先使用 JSON5 解析器轉換為標準 JSON。
我的 JSON 是否已上傳到伺服器?
不会。解析和格式化完全在瀏覽器中使用內建 JSON 函數進行。
大數會失去精度嗎?
JavaScript 將數字表示為 64 位元浮點數,因此大於 2^53(約 9 兆)的整數會失去精確度。對於 ID 或其他大整數值,將它們儲存為 JSON 中的字串。
我可以按字母順序對按鍵進行排序嗎?
JSON.stringify 不對鍵進行排序。在字串化之前使用單獨的排序步驟(或具有排序支援的格式化程序)按字母順序排列鍵。