JSON 格式化工具
在瀏覽器中格式化、壓縮並驗證 JSON —— 可以美化顯示或壓縮為單行,並精確標示錯誤位置。
隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。
使用方式
- 1.將你的 JSON 貼上或輸入至輸入框中。
- 2.選擇縮排風格(2 空格、4 空格或製表符),然後點選「格式化」以美化——或點選「壓縮」以將其壓縮為單行。
- 3.若 JSON 無效,請閱讀錯誤中顯示的行與欄位;否則,點選「複製」按鈕複製美化或壓縮後的結果。
關於JSON 格式化工具
JSON(JavaScript 物件表示法)是現代 API、設定檔與資料管道的通用語言,標準化為 ECMA-404 與 RFC 8259。此工具對你貼上的任何 JSON 做三件事:美化顯示、壓縮,以及驗證——全部皆在瀏覽器本機執行。
美化(漂亮列印)會新增換行和縮排,讓巢狀物件和陣列變得易讀 — 選擇 2 空格、4 空格或跳格符號,以符合專案風格。壓縮則相反:它會移除所有空格和換行,產生最小的有效載荷,這是你用於網路傳輸或嵌入 JSON 到 URL 或資料庫欄位時所需要的。因為兩種操作都透過 JavaScript 引擎的原生解析器進行轉換,所以輸出始終是標準合規的 JSON — 結構和值完全保留,僅 whitespace 會改變。
驗證是格式化工具發揮作用的地方。當 JSON 無法解析時,這個工具會報告錯誤訊息以及相應的行與欄位,讓你直接跳到問題所在。這個工具最常見的錯誤包括:在最後一個項目後面多出逗號(在 JavaScript 中有效,但在 JSON 中非法)、單引號字串或鍵值(JSON 要求雙引號)、未加引號的物件鍵值,以及隨意的註解(JSON 沒有這些)。如果你曾經貼過一個 "看起來沒問題" 的配置,但應用程式卻拒絕接受,通常是因為這些原因之一。
有一個值得了解的限制並非本工具的錯誤,而是JavaScript本身的屬性:數字會被解析為IEEE-754雙精度浮點數,因此任何超過9,007,199,254,740,991(Number.MAX_SAFE_INTEGER)的整數都會失去精確度。例如12345678901234567890這個值會被轉換為12345678901234567000。如果你需要精確的大型整數——例如Twitter/X的snowflake ID或64位元的資料庫鍵——請在JSON中將其儲存為字串。
幾個JSON的規則會讓使用者感到困惑,因為JavaScript比規格更寬容。JSON的鍵必須使用雙引號字串;JavaScript物件文字允許裸鍵識別符,但JSON則不允許。JSON總共有恰好六種值型別——物件、陣列、字串、數字、布林值與null——沒有undefined、NaN、Infinity、日期或函式。字串必須使用雙引號並轉義控制字元,且整個文件必須為單一頂層值。瞭解這些規則可以將大多數"為何無法解析"的問題轉化為兩秒鐘的解決方案。
壓縮不僅僅是外觀上的調整。在大型 API 回應中,移除縮排可減少載體大小約 15 至 30%,在 gzip 壓縮前即有明顯效益,對行動裝置客戶端或頻寬計費情境尤為重要。而格式化則是你在除錯時最常使用的功能——原本僅一個 5,000 字元的單行回應,只要美化,立刻變成可瀏覽的樹狀結構。
所有操作皆在瀏覽器端完成。你的 JSON 會留在頁面內,不會上傳至任何伺服器——這與需將資料傳送至後端的工具形成真實差異。常見用途包括:除錯 API 回應、清理設定檔(如 package.json、tsconfig.json 或 CI 檔案)、壓縮載體以備儲存,或僅確認一個 blob 是否為有效的 JSON 之前,再交給程式使用。
方法與來源
解析與序列化使用 JavaScript 引擎的原生 JSON.parse / JSON.stringify(符合 ECMA-404 與 RFC 8259 標準)。
常見問題
- 格式化(美化)與壓縮 JSON 有何不同?
- 格式化會加入縮排與換行,讓巢狀資料易於閱讀與編輯。壓縮則會移除所有空白,產生最小的合法 JSON,適合用於網路傳輸或儲存。兩者保留完全相同的資料——僅空白不同。
- 為何我的 JSON 驗證失敗?
- 最常見的原因是:最後項目後多出逗號、使用單引號而非雙引號、未引號的鍵值,或註解(JSON 皆不允許)。此工具會顯示第一個錯誤的行與欄位,讓你能快速修正。
- 我的 JSON 會上傳到哪裡嗎?
- 不會。解析與格式化皆在你的瀏覽器中使用原生 JSON 引擎完成,資料從未離開你的裝置。因此,安全地格式化私人 API 回應、權杖或設定檔。
相關工具
- ANSI 色彩碼產生器建立並複製原始 SGR 逸出序列,並搜尋標準 8 色加亮 8 色的終端機色碼。
- ASCII 表格查詢所有標準 7 位 ASCII 編碼的精確十進位、十六進位、八進位與二進位值。
- 標籤生成器建立 Shields.io 標籤 URL、Markdown 片段與 HTML 圖片標籤,無需記憶路徑轉義或查詢引數。
- BOM 移除移除貼入解碼文字中僅一個前導的 U+FEFF,並在本機保留每一個內部、尾部或第二個前匯出現的內容。
- 字元轉換器將 Unix 權限位元之間的嚴格八進位與完整 rwx 記法相互轉換,包含 setuid、setgid 與 sticky 狀態。
- 剪貼簿檢視檢視剪貼簿中的文字內容,顯示不可見的空白字元,並統計字元、碼點、UTF-8位元組、行、詞,以及JSON的有效性。
開發者工具 使用指南
查看全部- Format a JSON File in VS Code and in Your Browser (英文原文)
- Format JSON Files in Notepad++: Plugins and Alternatives (英文原文)
- How to Format JSON for Readability and Debugging (英文原文)
- Convert .properties Files to JSON Online (英文原文)
- Random MAC Address On or Off: A Developer Guide (英文原文)
- Generate a JWT for Testing: HS256 Tokens in Your Browser (英文原文)
- How to Decode JWT Tokens in Angular Apps (英文原文)
- JSON Schema to Zod: Inference Limits and a Safer Path (英文原文)
- Rust: Convert a Struct to a JSON String With serde (英文原文)
- How to Convert JSON to Excel in Python (英文原文)
- JSON to CSV Alternative With Built-In Formula Protection (英文原文)
- Local JavaScript Playground Alternative for Safe Testing (英文原文)
- How to Convert IPv4 to a 32-Bit Integer for Storage (英文原文)
- Convert Decimal Numbers to IEEE 754 Floating Point Format (英文原文)
- HTTP Status Codes Alternative: A Registry-First Lookup (英文原文)
- How to Edit HTML in a Browser Using a Sandboxed Preview (英文原文)
- Format HTML Code from Notepad++ Without Plugins (英文原文)
- Why Is Hello World Used in Programming: A Practical Guide (英文原文)
- How to Make Flexbox Items Fill the Container Height (英文原文)
- File Signatures List Alternative: Twelve Verified Prefixes (英文原文)