JSON 格式化工具
以智慧縮排與語法醒目提示,格式化、驗證並美化 JSON 資料
JSON 輸入
格式化輸出
檢查器
進階選項
與另一份 JSON 比較
將這份 JSON 傳送到 Data Diff,再貼上第二個版本,即可查看有哪些變更。
可立即採取行動的驗證結果
每次按鍵輸入都會執行驗證。JSON 有效時,即時顯示物件、陣列、鍵值與深度的統計數字;無效時,錯誤會回報確切的行與欄、可能原因,並在編輯器中醒目標示出錯的位置——而不只是顯示「無效的 JSON」。
本工具能精確定位的常見 JSON 錯誤
以下四種錯誤是無效 JSON 的主因。每種錯誤都會回報位置與可能原因:
結尾多餘逗號
在結尾的 } 或 ] 之前多了一個逗號。錯誤會在下一行回報為「unexpected token」——原因訊息會指回該逗號。
引號遺漏或不成對
未正確結束的字串會吞掉文件其餘部分。解析器回報的非預期符號往往離真正的錯誤很遠;行/欄醒目標示會指出該從哪裡找起。
非預期的符號
使用單引號而非雙引號、加入註解,或鍵值未加引號。標準 JSON(RFC 8259)要求所有字串與鍵值都必須使用雙引號。
無效的跳脫序列
只有 \" \ \/ \b \f \n \r \t 與 \uXXXX 是有效的跳脫序列。單獨出現的反斜線會在無效序列的確切位置產生錯誤。
格式化前 / 格式化後
左側為壓縮的 API 回應,右側為同一份資料以 2 格空格縮排格式化後的結果。結構、樹狀檢視與路徑會根據解析後的文件更新。
{"user":{"id":123,"name":"Chen","roles":["admin","editor"],"active":true}}
{
"user": {
"id": 123,
"name": "Chen",
"roles": [
"admin",
"editor"
],
"active": true
}
}
JSON 標準快速參考(RFC 8259)
- 兩種結構:物件(無序的名稱/值配對,{})與陣列(有序的值,[])。
- 值可以是雙引號括起的字串、數字、true、false、null、物件或陣列。
- 數字不得有前導零;允許 1E10 與 0.5e-2 這類指數形式。
- 字串不可包含實際的控制字元——必須以跳脫序列表示(\n、\t、\uXXXX)。
- 不允許註解、不允許結尾多餘逗號、不允許單引號——正是這套嚴格文法讓 JSON 具備可攜性。
接下來如何處理這份資料
格式化只是第一步。無須離開瀏覽器即可繼續後續流程:
換算實例
例如金額顯示為 NT$1,234.50,JSON 數字應寫成 1234.50,並以 "currency": "TWD" 另記幣別。千位逗號和貨幣符號不屬於 JSON 數字語法。中文文字採 UTF-8;格式化不會自動換算匯率。
常見問題解答
關於 Json Formatter 格式化的常見問題解答
例如金額顯示為 NT$1,234.50,JSON 數字應寫成 1234.50,並以 "currency": "TWD" 另記幣別。千位逗號和貨幣符號不屬於 JSON 數字語法。中文文字採 UTF-8;格式化不會自動換算匯率。
交換資料時,請分清顯示樣式與實際儲存值。千位分隔符與貨幣符號不屬於 JSON 數字;中文內容請保留 UTF-8,並明確記錄單位、幣別與日期格式。
是的,我們的 JSON 格式化工具完全免費,無須註冊。所有處理都在您的瀏覽器中完成。
只要將 JSON 資料貼進編輯器並點擊「驗證」,工具就會立即檢查語法、回報錯誤及其行號,並顯示物件、陣列與屬性的數量。
JSON 最小化會移除所有不必要的空白字元以縮減檔案大小。在將 JSON 部署到正式環境之前使用它,可以節省頻寬並加快載入速度。
可以,本格式化工具採用最佳化的解析演算法,支援最大 10MB 的檔案。大型 API 回應、資料庫匯出檔與設定檔都能有效率地處理。
本格式化工具嚴格遵循 RFC 8259 JSON 規範。若 JSON 含有結尾逗號或註解,驗證時會將其回報為錯誤,因為它們不符合標準 JSON 格式。
像 \u00e9 這類跳脫字元會被解碼以供顯示,非 ASCII 文字則原樣保留,不會重新跳脫。對數字與字串混合的陣列排序時,採用穩定排序語意(鍵值相同的元素保持原有順序),與現代引擎依 ECMA-262 實作 Array.prototype.sort 的方式一致。
可以。在選項面板中啟用鍵值排序,即可在每一層巢狀結構中依字母順序重新排列物件屬性。排序能讓設定檔與 API fixture 在版本控制中更容易進行 diff 比對,因為不相關的新增項目不會再讓變更散落在檔案各處。
JSON 本身沒有整數大小限制,但 JavaScript 的 Number 型別只能儲存 53 位元的安全整數。超過 9,007,199,254,740,991(2^53 - 1)的數值或高精確度小數會被捨入。這是 ECMA-262 所記載的 JavaScript 引擎限制,而非格式化工具的錯誤——請在 API 設計中將這類數值視為字串處理。
權威參考資料
定義此工具所支援格式的標準與官方文件。