Toolify

JSON 格式化與壓縮 — 帶語法驗證

貼上任意 JSON, 選 2/4/8 空格縮排美化, 或壓縮到一行。無效 JSON 會顯示解析錯誤便於快速定位問題。

格式化輸出
{
  "hello": "world",
  "items": [
    1,
    2,
    3
  ]
}
輸入: 38 位元組 · 輸出: 60 位元組

運作原理

本工具的功能

JSON 是嚴格格式 — 每個引號、逗號、括號都必須正確。瀏覽器和 API 在錯誤時返回晦澀的「Unexpected token」訊息。本工具用瀏覽器原生 JSON 解析器解析輸入, 然後重新序列化為美化 (帶縮排) 或壓縮 (無空白) 格式。

解析失敗時直接顯示底層錯誤(通常帶位置), 便於快速定位缺失的逗號、未轉義引號、末尾逗號等問題。

格式化與壓縮

格式化(美化): JSON 閱讀的標準方式。JavaScript 圈慣用 2 空格, Python/Java 圈常用 4 空格。按專案慣例選擇。

壓縮(minify): 摺疊成無空白的一行。在 URL 中嵌入 JSON、環境變數、空白敏感場景有用。典型美化配置檔案壓縮後縮小 20-40%。

JSON 常見陷阱

末尾逗號。JavaScript 允許, JSON 不允許。{a:1, b:2,} 在編輯器裡透過但發往網路時失敗。

單引號。JSON 要求鍵和字串值都用雙引號。{'a': 1} 無效, {"a": 1} 正確。

註釋。JSON 沒有註釋。// 或 /* */ 會破壞解析。VS Code 配置使用的 JSONC 支援註釋但非標準 JSON。

數字。JSON 不支援 NaN 或 Infinity。用 null 或字串包裹, 視下游消費方而定。

常見問題

支援 JSONC (含註釋 JSON) 嗎?

暫不。先去除註釋或用支援 JSONC 的工具。

大小限制?

現代瀏覽器能處理幾 MB JSON, 不過文本框可能在 ~1 MB 後變慢。巨大檔案用桌面工具。

為什麼我的 JSON 無效?

最常見: 末尾逗號、單引號、字串內未轉義引號。解析器錯誤會指出列位置。

可以按字母順序排序鍵嗎?

本版未支援。貼上到支援排序的工具(如 jq --sort-keys) 最乾淨。後續可能新增。

處理深巢狀 JSON?

可以。瀏覽器 JSON 解析器處理任何實用深度。

為什麼壓縮 1 MB 不變成 1 位元組?

壓縮只去除空白, 實際資料保留。真正的體積壓縮用 gzip 或 MessagePack 等二進位制格式。

資料會上傳嗎?

不會。所有解析與格式化在瀏覽器內。

JSON Schema 驗證呢?

本工具僅語法驗證。Schema 驗證用專門的 JSON Schema 驗證器加你的 schema 檔案。

相關工具

最後更新: