JSON 工具箱

工具使用常見問題:資料、檔案與匯出

結論:資料會不會上傳、能處理多大檔案、存不存本地、中文為什麼變成 \u4e2d,這十個問題把線上 JSON 工具的行為邊界講清楚。

入門約 10 分鐘發佈於 2026-10-30更新於 2026-10-30
工具使用常見問題封面

結論:本站的解析、格式化、對比與查詢全部在瀏覽器本地執行,斷網後仍可使用;處理完敏感資料請清空 localStorage 歷史記錄;檔案超過 10 MB 改用本地命令列與流式工具,不要硬粘進瀏覽器。

把敏感報文粘進線上工具之前,先弄清它會去哪。這一篇只談工具的執行時行為,不談語法。

一、資料與隱私

JSON 線上格式化會把資料上傳到伺服器嗎?

不會。解析、格式化、壓縮、對比、查詢全部在瀏覽器裡完成,頁面不向業務伺服器傳送你貼上的任何內容。

判斷一個線上工具是否上傳資料,不用看它的隱私宣告,看瀏覽器的網路面板就夠:

  1. 開啟開發者工具,切到 Network 面板,勾選保留日誌;
  2. 貼上一段 JSON,點「格式化」;
  3. 觀察是否出現新的 XHR 或 fetch 請求,請求體裡是否包含你的內容。

真正本地處理的工具,這一步只會看到靜態資源請求。反過來,如果一次格式化出現了 POST /api/format 並且請求體是你的原文,那不管頁面怎麼寫,資料都已經離開瀏覽器了。

本站所有工具都是純前端實現,構建產物裡沒有服務端介面。斷網後重新整理過快取仍然可以繼續使用, 這也是判斷「是否純本地」最直接的辦法。

斷網了還能用嗎?

能用,前提是頁面已經載入過一次。

工具站的資源隨首次訪問下載到瀏覽器快取,之後即使斷網,格式化、壓縮、JSON5 轉換、 JSONPath 查詢仍然照常工作。會失效的只有依賴網路的功能,例如檢查新版本、下載桌面端安裝包。

反過來,斷網測試也是驗證「資料不外傳」的好方法:斷網後如果功能全廢,說明每次操作都在請求服務端。

資料會儲存在本地嗎?怎麼清除?

會,但只儲存在當前瀏覽器的 localStorage 裡,而且只有歷史記錄與介面設定兩類。

  • 歷史記錄:最近 100 條處理記錄,按時間倒序,用於回溯上一次貼上的資料;
  • 介面設定:主題、語言、縮排偏好等;
  • 不會儲存的:檔案本身、上傳記錄、任何帶身份標識的內容。

清除方式有三種,效果從窄到寬:

方式 清除範圍 適用場景
歷史頁「清空記錄」 只刪歷史記錄,保留設定 處理完敏感資料後
開發者工具執行 localStorage.clear() 本站全部本地資料 排查設定異常
瀏覽器「清除瀏覽資料」選本站 Cookie、快取、儲存一起清 共用電腦前

在共用電腦上處理生產資料,處理完直接清空歷史,不要只關標籤頁——localStorage 不會隨標籤頁關閉而消失。

為什麼中文變成了 \u4e2d\u6587?

因為「轉義」功能把非 ASCII 字元轉成了 Unicode 轉義序列,這是刻意行為,不是亂碼。

\u4e2d 就是「中」字的碼位(U+4E2D)。兩種形式在 JSON 語義上完全等價,解析後都是同一個字串:

{
  "escaped": "\u4e2d\u6587",
  "plain": "中文"
}

什麼時候需要轉義?把 JSON 嵌進只接受 ASCII 的老系統、寫進 HTTP 頭、或者塞進另一層字串時。 什麼時候不需要?絕大多數介面傳輸、檔案儲存都不需要,UTF-8 直接存中文更省位元組——一個漢字 3 位元組, 轉義後變成 6 位元組。

看到中文變 \u4e2d,先去檢查是不是點了「轉義」按鈕,而不是懷疑編碼壞了。

二、檔案與大小

支援多大的檔案?

瀏覽器端沒有硬性上限,真正的限制來自三處:

環節 大致瓶頸 表現
文字框貼上 1–5 MB 貼上後輸入框卡頓,游標延遲
JSON.parse 50–100 MB 主執行緒阻塞數秒,頁面無響應
樹形渲染 1–2 萬個節點 展開時掉幀、滾動卡死

也就是說,幾十 MB 的檔案「能解析」但「不好用」。真正需要處理這類資料時,正確做法不是換個更強的線上工具, 而是改用流式處理(見 效能與安全常見問題)。

經驗閾值:2 MB 以內線上工具很順暢;2–10 MB 要接受一兩次卡頓;超過 10 MB 建議本地指令碼處理。

貼上後瀏覽器卡住不動了,怎麼辦?

先別重新整理——重新整理會丟掉內容,還得重新貼上。按下面的順序搶救:

  1. 等 10–30 秒。多數情況是主執行緒在解析或渲染,會自己恢復;
  2. 恢復後立刻切到「壓縮」檢視或關閉樹形展開,減少 DOM 節點;
  3. 把內容複製到本地檔案,改用命令列處理:
# 只看前 100 行結構,避免整體載入
head -c 200000 data.json | jq . | head -n 100

# 用流式工具統計條數,不進記憶體
jq -c '.items[]' data.json | wc -l

下次遇到大檔案,先用 wc -c 看位元組數,再決定要不要往瀏覽器裡粘。

為什麼貼上進來格式沒變?

常見三種原因,按出現頻率排序:

  1. 輸入本身已經是壓縮格式,且沒有語法錯誤:格式化只會調整縮排,如果原文字來就兩行, 格式化後仍然兩行——因為字串裡的換行不會被展開;
  2. 內容不是 JSON:比如粘的是 JavaScript 物件字面量(鍵名沒引號、用了單引號), 解析器會直接報錯而不是格式化;
  3. 點錯了按鈕:壓縮與格式化是兩個方向,壓縮會把縮排全去掉。

判斷方法:看輸出區右上角的字元數。格式化後字元數應該增加(多了縮排與換行), 如果反而減少,說明執行的是壓縮。

三、輸入與輸出

怎麼把結果匯出成檔案?

三種方式,按可靠性排序:

方式 操作 適用
下載按鈕 點「下載」生成 .json 檔案 結果較大,需要留檔
複製到剪貼簿 點「複製」 結果較小,直接貼回程式碼
手動全選複製 選中輸出區 Ctrl/Cmd + C 複製按鈕失效時的兜底

下載生成的檔案預設用 UTF-8 編碼、無 BOM。這一點很重要:帶 BOM 的 JSON 在很多解析器裡會直接報錯 (見 語法與格式常見問題 裡關於 BOM 的那一節)。

支援 JSON5 和 JSONC 嗎?

支援,但要區分「解析」與「輸出」兩件事。

  • 輸入側可以貼 JSON5(單引號、無引號鍵名、註釋、尾逗號、十六進位制數字)或 JSONC(只允許註釋);
  • 輸出側可以轉成標準 JSON,也可以反向把標準 JSON 轉成 JSON5 便於人工編輯。

跨系統傳輸時務必輸出標準 JSON。JSON5 是給人寫配置用的方言,Content-Type: application/json 的請求體裡出現註釋或尾逗號,服務端多半會拒絕。

四、環境與相容

手機上能用嗎?

能,介面按單列重排,格式化、壓縮、對比、JSONPath 都保留。

但手機上處理大檔案體驗很差:軟鍵盤遮擋、選中文字困難、切後臺時瀏覽器可能回收頁面導致內容丟失。 應急可以,日常建議在電腦上做。

為什麼同一個檔案在 Chrome 能開啟,在 Safari 報錯?

多數不是瀏覽器差異,而是編碼差異。按這個順序排查:

  1. BOM:Windows 記事本儲存的 UTF-8 帶 BOM,部分解析器不容忍;
  2. 換行符:CRLF 與 LF 混用本身不影響 JSON,但會讓錯誤行號錯位,看起來像「報錯位置不對」;
  3. 不可見字元:從網頁複製的文字可能帶零寬空格(U+200B),肉眼看不見但會讓鍵名對不上。

用一個命令就能看穿:

# 看前 16 位元組的十六進位制,EF BB BF 開頭就是帶 BOM
head -c 16 data.json | xxd

五、速查

問題 結論
會上傳資料嗎 不會,全部在瀏覽器本地處理,斷網可用
存在哪 localStorage,僅歷史記錄與設定,不含檔案
多大檔案合適 2 MB 以內順暢,超過 10 MB 換命令列
中文變 \u 點了轉義,等價但更佔位元組,通常無需轉義
卡住了怎麼辦 等恢復 → 關樹形 → 複製出來用 jq
匯出帶 BOM 嗎 不帶,UTF-8 無 BOM
支援註釋嗎 輸入側支援 JSON5/JSONC,輸出建議標準 JSON