JSON 格式化工具
免費線上 JSON 格式化工具,美化、壓縮、驗證 JSON 資料。開發者必備工具,支援語法高亮、錯誤提示。完全在瀏覽器處理。
把 JSON 貼進左邊,按「格式化」加上 2 或 4 格縮排、按「壓縮」擠成一行、按「驗證」只檢查語法;有錯會用中文說明原因並標出第幾行第幾字,日誌裡被跳脫過(反斜線加雙引號)的 JSON 會自動還原,也能勾選欄位依名稱排序,大整數 ID 原樣保留,整個過程都在瀏覽器裡完成。
什麼是 JSON
JSON(JavaScript Object Notation)是一種用純文字表示資料的格式:物件用大括號包住「"欄位": 值」,陣列用中括號,值可以是字串、數字、true/false、null 或另一層物件與陣列。它人看得懂、程式也好解析,所以網頁 API 的回應、設定檔、資料匯出常常用它。
JSON 的規則比 JavaScript 嚴格:欄位名稱和字串一定要用雙引號、最後一個項目後面不能有逗號、不能寫註解。這個工具以瀏覽器內建的解析結果判斷對錯,所以這幾種寫法都會被標成錯誤,而不是悄悄幫您修掉。
三個按鈕各做什麼
- 格式化:每一層加上縮排(可選 2 或 4 格空白)並換行,方便閱讀 API 回應或找出設定檔哪一層放錯。
- 壓縮:拿掉所有縮排與換行,變成一行,適合貼進程式碼或縮小傳輸量。
- 驗證:只檢查語法、不產生輸出;格式化與壓縮也會先做同樣的檢查,有錯就不會輸出結果。
格式化和壓縮只改空白與換行:欄位順序照原本、數字保留原本的寫法(1.0 不會變成 1、1e5 不會展開),字串的值也不變。結果區會把欄位名稱、字串、數字與 true/false/null 標成不同顏色,右上角的按鈕可以一鍵複製。
被跳脫過的 JSON、轉成字串、欄位排序
- 自動還原跳脫:從日誌、資料庫欄位或另一份 JSON 裡複製出來的內容,常長得像 {\"name\":\"Amy\"} 或整段被雙引號包住,直接格式化會失敗。工具發現這種情況會先去掉一層跳脫再格式化,並在下方說明它做了這件事。
- 轉成跳脫字串:反過來:要把一段 JSON 放進程式碼或設定檔的字串欄位時,按「轉成跳脫字串」,會先壓成一行,再把雙引號與反斜線跳脫、外面包一層雙引號,可以直接貼上。
- 欄位依名稱排序:勾選後,每一層物件的欄位都依名稱排序(大寫字母排在小寫前面),兩份欄位順序不同的 JSON 排序後比較好對照;重複的欄位兩個都保留、維持原本先後。要逐行比較差異可以再用「JSON 比較」。
常見錯誤與工具怎麼說
JSON 的語法比 JavaScript 物件嚴格,下面這些是最常見的錯。格式化、壓縮、驗證時遇到會停下來,用中文講原因並標出位置,不會悄悄幫您改掉。
| 寫成這樣 | 工具的說明 | 正確寫法 |
|---|---|---|
| {'name': 'Amy'} | 欄位名稱要用雙引號,不能用單引號 | {"name": "Amy"} |
| [1, 2, 3,] | 結尾多了逗號:JSON 陣列最後一個元素後面不能加逗號 | [1, 2, 3] |
| {"ok": True} | 「True」不是 JSON 的值:JSON 只接受小寫的 true、false、null | {"ok": true} |
| {"v": undefined} | JSON 沒有 undefined,請改成 null 或加上雙引號變成字串 | {"v": null} |
| {"n": 01} | 數字不能以 0 開頭(例如 01 要寫成 1) | {"n": 1} |
| // 註解 | JSON 不支援註解(// 或 /* */) | 把註解刪掉 |
| {"a":1}{"b":2} | JSON 已經結束,後面還有多餘的內容 | [{"a":1},{"b":2}] |
Python 印出來的 dict(單引號、True、None)不是 JSON,用 json.dumps() 輸出才是;JavaScript 物件要用 JSON.stringify() 轉。
格式化時會特別提醒的兩件事
- 超出精確範圍的數字:超過 2^53 的整數(常見於資料庫 ID、訂單編號)或大到超出範圍的數字,本工具原樣保留,但會列出來提醒:一般程式用 JSON.parse 讀取時,這些數字會被改成相近的值或變成 Infinity。
- 重複的欄位名稱:同一個物件裡出現兩次同名欄位時,本工具兩個都保留並提醒您;一般程式讀取時只會留下最後一個,前面那個的值會不見。
JSON 格式化工具功能特點
- JSON 格式美化(2 或 4 格縮排)
- JSON 壓縮精簡
- 語法驗證,錯誤用中文說明並標出第幾行第幾字
- 結果語法高亮(欄位、字串、數字不同顏色)
- 超過 2^53 的大整數、1.0 這類寫法原樣保留,不會被改掉
- 一鍵複製結果
- 完全本地處理
如何使用JSON 格式化工具?
- 貼上 JSON 資料
- 按「格式化」加上縮排,或按「壓縮」去掉空白;只想檢查就按「驗證」
- 查看結果,有錯會標出第幾行第幾字
- 複製處理後的 JSON
JSON 格式化工具常見問題
可以驗證 JSON 語法嗎?
可以。按「驗證」「格式化」或「壓縮」時會檢查語法,有錯會用中文說明原因(例如結尾多了逗號、字串用了單引號),並標出第幾行第幾字。
美化和壓縮有什麼差別?
美化(格式化)會添加縮排和換行,方便閱讀;壓縮會移除所有空白,減小檔案大小,適合傳輸。
JSON 格式化有什麼用?
格式化後的 JSON 具有適當的縮排和換行,大幅提升可讀性。這對於除錯 API 回應、檢查配置檔、或分享 JSON 資料給團隊成員都非常有幫助。
很長的數字 ID 格式化後會變嗎?
不會。JavaScript 的數字只能精確表示到 2^53(9007199254740992),很多工具用 JSON.parse 處理,9007199254740993 會被改成 9007199254740992。本工具保留原本的寫法,並提醒你哪些數字在一般程式裡讀取時會失真。
可以處理多大的 JSON?
程式沒有設定大小上限,能處理多大取決於您的裝置與瀏覽器。格式化結果超過 20 萬個字元時,結果區會改成不上色的純文字顯示,避免頁面變慢;內容本身一樣完整、可以複製。
日誌裡的 {\"a\":1} 要怎麼變回正常的 JSON?
直接貼進來按「格式化」。工具發現內容是被跳脫過的 JSON(反斜線加雙引號,或整段被雙引號包住),會先去掉一層跳脫再格式化,並在下方說明;如果跳脫了好幾層,再把結果貼回去按一次即可。
JSON 可以用單引號或加註解嗎?
不行。JSON 規定字串與欄位名稱都要用雙引號,也不支援 // 或 /* */ 註解;貼上這樣的內容,工具會標出位置並說明原因。
我貼上的 JSON 會上傳到伺服器嗎?
不會。解析、格式化、壓縮與驗證都由網頁程式在您的瀏覽器裡完成,內容不會送出;適合處理含有內部資料的 API 回應或設定檔。