JSON 格式化

在寬螢幕裡格式化、壓縮或轉義 JSON,並在右側樹上改同一份資料。不合法時會標出瀏覽器能給出的行和列。

轉義
格式化
Aa文字 #數字 T布林 NNull { }物件 [ ]陣列

左邊是原始碼,右邊是同一份樹

這一頁是寬螢幕工作台,處理一份 JSON。左邊是你貼上的文字,右邊是同一份資料的樹,可以摺疊、搜尋和修改。它負責格式化、壓縮和轉義,不會替壞掉的 JSON 猜一個修復結果。只把一句話放進 JSON 字串、而不是整份文件,用 JSON 轉義。和 CSV 互轉用 JSON 轉 CSV。YAML 用 JSON 轉 YAML。

怎麼用

  1. 把 JSON 貼進左邊,或點顯示範例、匯入,也可以把 .json 或 .txt 檔案拖到左邊。底部狀態是游標所在的行和列,以及字元數、行數。左右兩邊都有行號,並跟著捲動。右邊工具列的行號預設勾選,取消即可關掉。中文按字元計,不是按位元組。
  2. 格式化依所選縮排(2 或 4)排開。壓縮變成一行。依鍵名排序在右側。勾上會重排物件的鍵,取消勾選會回到勾選前的順序。陣列順序不動。
  3. 轉義把文字變成一個 JSON 字串。文字本身是合法 JSON 時,會先依目前縮排排開再轉義。壓縮轉義先壓成一行再轉義。反轉義只解析一層。若結果是字串,就顯示這層字串,不會再解析一次。
  4. 樹跟著左邊的文字更新。點 ▾ 摺疊節點。工具列上的摺疊會收起整棵樹,按鈕變成展開;再點展開就全部打開,按鈕變回折疊。
  5. 搜尋預設不顯示,點工具列上的搜尋才出現。它符合鍵和值。可以區分大小寫,也可以摺疊沒有命中的分支。上一個、下一個在命中之間移動。樹下面的路徑是 JSONPath,例如 $.tags[0]。
  6. 按兩下鍵或值可以改。按一下布林值會在 true 和 false 之間切換。停在一列上,+ 新增節點,× 刪除節點。左邊的複製、右邊的複製結果,以及匯出,拿走的都是左邊的文字。全螢幕占滿畫面。視窗變窄時,樹改到原始碼下面。

解析會做什麼、不會做什麼

只接受 JSON。尾逗號、單引號、註解都會報錯。瀏覽器給出位置時,提示裡帶行和列。重複的鍵保留最後一個,這是 JSON.parse 的行為。整數如果像 Unix 時間戳(秒或毫秒),旁邊會顯示你電腦上的本地時間,這個提示不會寫回 JSON。節點超過 4000 個時仍可格式化和壓縮,但不再畫樹。在樹上修改會重寫左邊。原來是一行的,改完仍是一行。原來有換行的,依目前縮排重寫。特別大的整數可能丟掉末尾位數,需要保留每一位時請寫成字串。範例是一個物件,裡面有字串「Ada」、布林值、null、陣列,以及時間戳 1700000000。全形空白不會被當成 JSON 的空白。

什麼時候用

  • 讀一段壓成一行的介面回傳,把不看的分支折起來。
  • 改測試資料裡的一個欄位,不用自己找逗號。
  • 把整份 JSON 轉義後嵌進另一段字串,再用反轉義還原。

常見問題

尾逗號被拒絕了。

這裡接受的是 JSON,不是 JSON5。去掉逗號和註解。瀏覽器給出位置時,提示會寫行和列。

很大的檔案沒有樹。

超過 4000 個節點就不畫樹。格式化和壓縮仍會改寫左邊。需要樹時,先把文件裁小。

把 null 改成一段文字後,外面多了引號。

null 可以改成 null、true、false 或 JSON 數字。其他文字會存成字串。