線上開發工具

除錯時隨手要用的那幾個小工具:把介面回傳的 JSON 展開看看,把兩份設定合到一起,把一段 Base64 解出來,把日誌裡的時間戳換成人能讀的時間。全部在瀏覽器本機執行,貼進去的東西不會被送出去。
JSON 線上格式化

左邊貼上 JSON,右邊即時格式化並顯示可摺疊的樹狀結構,支援語法檢查與錯誤定位、展開/摺疊節點、壓縮、跳脫與複製節點路徑,全部在本機處理不上傳。

JSON 線上合併

把多個 JSON 物件或 .json 檔案合併成一個,支援深合併、淺合併、陣列串接與去重,可選衝突時以誰為準,並逐條列出被覆蓋的欄位,全部本機處理不上傳。

Base64線上解碼

Base64 與文字、圖片、任意檔案互轉,可直接貼上整段 data URI 自動辨識,解出圖片直接預覽。全部在本機轉換,不上傳資料。

時間戳轉換

Unix 時間戳與日期時間雙向互轉,自動辨識 10 位(秒)與 13 位(毫秒),可切換本地時區與 UTC,頁面頂部即時顯示目前時間戳。

URL線上解碼

URL 百分號編碼與原文雙向互轉,支援 UTF-8 與 GBK、+ 號當空格,可選 encodeURIComponent 或 encodeURI,貼整條連結還會拆開查詢參數逐個解碼。

關於這些開發工具

為什麼這類工具尤其不該上傳

開發時貼進線上工具的內容,往往比想像中敏感得多:帶使用者手機號碼的介面回傳、含 token 的請求標頭、正式資料庫匯出的一段 JSON、準備提交的設定檔。把它貼進一個會把內容送回伺服器的網站,等於把一份線上資料交給了一個不知道誰在維運的第三方——而這類工具站通常連隱私政策都沒有。這裡所有處理都用瀏覽器原生能力完成,頁面載入完之後斷網也能用,你可以打開開發者工具的網路面板自己確認沒有任何請求。

編碼不是加密

這是這一組工具裡最常見的誤解。Base64 和 URL 百分號編碼都是可逆編碼:任何人拿到密文都能原樣解開,不需要金鑰,也不需要破解。它們存在的理由是讓二進位內容和特殊字元能安全地穿過只認文字的協定,跟保密沒有任何關係。所以把密碼 Base64 一下再存進資料庫,和明文儲存沒有區別;把 token 放進 URL 查詢參數並編碼,它照樣會完整出現在閘道日誌和瀏覽器歷史紀錄裡。真正要保密的東西該走的是加密和雜湊,那是另一組工具的事。

JSON 報錯常常不在它指的那一行

解析器報的位置是它發現問題的地方,不是你寫錯的地方。少一個右大括號,報錯會落在檔案末尾;多一個逗號,報錯落在下一個鍵上。所以看到行號先往上找,而不是盯著那一行改。三個最常見的原因都不是 JSON 本身的問題:從程式碼裡複製過來帶著 // 註解、用了單引號、物件或陣列最後一項後面留了逗號——這三樣在 JavaScript 裡都合法,在 JSON 裡都不合法。

時間戳的兩種位數

日誌和 API 裡的時間戳有 10 位和 13 位兩種,前者是秒、後者是毫秒,把毫秒當秒解析會得到一個五萬年後的日期,反過來則得到 1970 年附近。這是最常踩的坑,所以轉換工具會按位數自動判斷單位並把判斷結果顯示出來,而不是讓你先選。