JSON 格式化工具
格式化、壓縮和驗證 JSON。可選擇縮排方式使內容更易讀,或壓縮為單行。語法錯誤也可即時檢查。
什麼是 JSON 格式化工具
JSON 格式化工具可把擠在一行、難以閱讀的 JSON 重新整理為帶縮排的形態,也可反過來去除空白、壓縮為一行。由於在解析輸入的同時也會判定語法是否正確,因此只需貼上 API 回應或設定檔,即可一併完成格式化、壓縮與驗證三件事。縮排可從2個空格、4個空格與定位字元中選擇。
判定使用瀏覽器自身的 JSON 解析器,因此不會出現「本工具能通過、執行環境卻報錯」的落差。處理全部在您所使用的裝置內完成,貼上的 JSON 不會被傳送至伺服器。即便是含有認證權杖或個人資訊的 API 回應,也能在不外洩內容的前提下加以格式化。
JSON 格式化工具的使用方式
- 貼上 JSON 把 JSON 貼到左側的輸入框。若手邊沒有可試的資料,可用「範例」按鈕載入樣本。
- 選擇縮排的寬度 從2個空格、4個空格與定位字元中選擇。配合專案的格式規範,即可原樣貼回。
- 查看有效與無效的標示 隨輸入即時切換「有效的 JSON」「無效的 JSON」標記。無效時會原樣顯示解析器回傳的錯誤訊息,可據以追查在第幾行的哪個字元處受阻。
- 選擇格式化版或壓縮版複製 「複製格式化結果」把帶縮排的結果、「複製壓縮結果」把去除空白後的單行結果放入剪貼簿。
- 確認行數與位元組數 行數計的是格式化後的結果,位元組數計的是壓縮後的結果並以 UTF-8 計量。估算傳輸量時請看後者。
用好本工具的小技巧
- JSON 的鍵必須用雙引號括起來,單引號無效。
- 末尾逗號(如
{"a":1,})在 JSON 規範中是無效的。 - 數字可使用科學計數法(e 表示),但 NaN 和 Infinity 是無效的。
- 字串中的雙引號需轉義為
\",換行符用\n,製表符用\t。 - 壓縮可有效減小檔案體積。API 傳輸推薦使用壓縮版,配置檔案建議使用格式化版。
JSON 格式化工具的應用情境
閱讀 API 回應的內容
把以一行回傳的回應加以格式化,巢狀的深度與陣列的元素數便能以肉眼追蹤。這是開發中的動作確認與排查缺陷時最常見的用法。
查明設定檔的語法錯誤
當應用程式無法讀取設定檔時,貼上並驗證即可當場鎖定尾隨逗號、引號未閉合等原因。
為減少傳輸量而壓縮
把格式化後的 JSON 直接作為 API 回應或內嵌資料回傳,會因縮排的空白而白白增加傳輸量。用於發布時請使用壓縮版。
整理要貼到文件或 Issue 的程式碼範例
可把要放進規格書或缺陷報告的請求範例、回應範例,改成縮排整齊、易於閱讀的形態。
轉換為其他格式之前的前置處理
先確認語法無誤,在把資料交給JSON 轉 TypeScript 型別定義或JSON 轉 XML等轉換工具時,便不必為轉換端難以判明原因的報錯而煩惱。
與 JSON 相關的用語
- JSON
- JavaScript Object Notation 的縮寫,是 RFC 8259 所定的資料交換格式。僅由物件、陣列、字串、數值、布林值與 null 六種構成,因不限語言皆可讀寫,遂成為 Web API 的標準格式。
- 格式化(美化輸出)
- 按巢狀的深度加入縮排與換行,重新組織為人可閱讀的形態。資料的內容不變,僅外觀改變。
- 壓縮(minify)
- 去除所有與語意無關的空白與換行,彙為一行。位元組數減少故可壓低傳輸量,但不適合人來閱讀。
- 驗證(validation)
- 確認輸入是否合乎 JSON 的文法。本工具交由瀏覽器的解析器解析,並在失敗時原樣顯示其錯誤訊息。
- 跳脫序列
- 指在字串中,用反斜線表示那些無法直接書寫之字元的寫法。雙引號寫作
\",換行寫作\n,定位字元寫作\t。 - 鍵的順序
- JSON 本身並未為物件的鍵規定順序。本工具需經由 JavaScript 的物件,故只有形如
"1"、"2"這類可讀作整數的鍵會被重排為遞增,其餘的鍵則保持書寫時的次序。 - UTF-8
- RFC 8259 規定 JSON 所應使用的字元編碼方式。中文等 ASCII 以外的字元每字占多個位元組,故字元數與位元組數並不一致。
常見問題
閒話 ― JSON 勝過 XML 的原因
2000 年代初期 XML 曾是主流,但 Douglas Crockford 於 2001 年提出 JSON 後,憑藉其輕量、易用、易讀的特性,2010 年代以後 JSON 已成為標準格式。
同等資料下,JSON 的位元組數通常比 XML 少 30~50%,在行動通訊時代直接影響應用的響應速度。
RFC 8259 規定鍵重複為"SHOULD NOT",並非禁止。{"a":1,"a":2} 在語法上有效,但行為未定義。