JSON 格式化工具

格式化、查看和複製 JSON。資料保留在瀏覽器中。

資料與格式
正在準備編輯器…
輸入
輸出
結果將顯示在這裡。

使用方法

  1. 貼上 JSON、開啟檔案或嘗試範例。
  2. 調整設定,結果會隨輸入更新。
  3. 複製或下載格式化結果。

認識 JSON

JSON 是用於交換結構化資料的文字格式,常見於 API 回應、設定檔案和匯出記錄。它的值類型不多,方便在不同程式語言之間傳遞資料。

格式化讓結構更易查看。縮排顯示哪些值屬於同一層級,換行讓巢狀記錄更易瀏覽。這些排版選擇不會改變有效文件所表示的資料。

值與結構

JSON 文件包含一個值。根層級值可以是物件或陣列,也可以是字串、數字、布林值或 null。物件將字串名稱與值關聯,陣列按有意義的順序儲存值。兩者都可以巢狀。

類型範例含義
物件{"name": "Ada"}花括號中的命名屬性。
陣列["red", "blue"]方括號中的有序序列。
字串"Hello, world"用雙引號包圍的文字。
數字-12.5e2十進位數字,可帶指數。
布林值true / false兩個邏輯值之一。
空值null明確的空值,並非省略屬性。

需要注意的語法

屬性名稱和字串必須使用雙引號。名稱與值之間用冒號分隔,物件成員和陣列元素之間用逗號分隔。最後一個成員或元素後不要加逗號。註解、單引號和 JavaScript 表達式都不屬於嚴格 JSON。

字面值 true、false 和 null 必須小寫。數字使用十進位寫法,可帶負號、小數和指數。前導零、開頭的加號、NaN 和 Infinity 均無效。字串內的引號、反斜線和控制字元必須跳脫;換行必須寫成 \n 這樣的跳脫形式。

為了可靠地交換資料,物件名稱應唯一。名稱重複時,不同讀取程式可能保留不同的值。格式化工具會報告並保留重複項,由你決定如何處理。僅通過語法檢查,無法確認文件符合 API 約定或 JSON Schema。

格式化保留哪些內容

DevToolsy 驗證輸入,並調整原始 token 周圍的空白。它保留 900719925474099312345、19.9900、1e+400、-0 等數字文字,以及字串原本的跳脫寫法。這樣可避免將數字解析為 JavaScript 浮點值後重新序列化造成的捨入。讀取結果的應用程式仍會自行決定數值精度。

縮排、LF 或 CRLF 換行字元及末尾換行屬於輸出慣例。「排序鍵名」是獨立的可選操作:依解碼後的名稱,以固定且區分大小寫的比較方式遞迴排列物件成員。陣列順序與重複名稱的相對順序保持不變。這個功能方便閱讀與比較差異,不是用於密碼學簽章的正規化方案。

一個簡單的 API 回應
精簡輸入
{"name":"Ada","roles":["developer","reviewer"],"active":true}
已格式化 · 2 個空白
{
  "name": "Ada",
  "roles": [
    "developer",
    "reviewer"
  ],
  "active": true
}

縮排改變顯示方式。屬性名稱、值和陣列順序保持不變。

處理限制

最多支援 5 MiB UTF-8 輸入、20 MiB 輸出、128 層巢狀、250,000 個掃描 token,每次執行最長 10 秒。較大的文件可能需要效能更好的裝置。

?

常見問題

自動格式化會更改輸入嗎?

不會。輸入短暫停頓後,唯讀結果會更新,你輸入的內容則維持原樣。自動格式化預設開啟。關閉後,可按「格式化 JSON」或 Ctrl/⌘ + Enter 手動執行。

JSON 尚未輸入完整時會怎樣?

編輯期間,上一次有效結果仍會顯示。目前輸入和設定產生有效結果之前,「複製」和「下載」不可用。選擇錯誤可跳至輸入中的對應位置。

格式化會捨入大數或更改字串跳脫嗎?

不會。原始數字 token 和字串跳脫寫法均保留,包括長整數、小數末尾的零、指數寫法和負零。其他應用程式可能以不同精度解讀這些數字。

排序鍵名會同時重排陣列嗎?

不會。鍵名排序只遞迴套用至物件。陣列保留原順序,重複名稱也保留相對順序。排序預設關閉。

格式化工具能修復註解或尾端逗號嗎?

工具只接受嚴格 JSON,會報告無效語法,不會猜測如何修復。註解、單引號字串、未加引號的鍵名和尾端逗號都需要在輸入中修正。

JSON Beautifier 和 JSON Formatter 是一回事嗎?

是的。本頁的美化、pretty-print 和格式化都表示為 JSON 新增易讀的縮排和換行。需要精簡文件時,請使用 JSON 壓縮工具。

JSON 會離開我的裝置嗎?

貼上的文字和本機檔案都在瀏覽器中處理。DevToolsy 不會上傳 JSON,也不儲存文件歷程記錄。如需保留,請在離開前複製或下載結果。

尋找下一個實用工具

語言

要切換語言嗎?目前頁面的內容將被清空。請先複製或下載需要保留的資料。