CBOR / MessagePack 編解碼器
JSON 輸入
十六進位輸出
技術細節
CBOR 與 MessagePack 轉換器的運作方式
工具功能說明
此工具可將 JSON 資料編碼為 CBOR(Concise Binary Object Representation)或 MessagePack 的二進位格式,並將二進位負載解碼回人類可讀的 JSON。它會在解碼後的結構旁顯示原始十六進位位元組,方便檢視在受限環境中使用的精簡二進位編碼。兩種編碼方向都支援巢狀物件、陣列與標準 JSON 型別。
常見的開發者使用情境
IoT 開發者使用此工具檢視來自 CoAP 訊息或 COSE 簽署權杖的 CBOR 負載,而無需撰寫反序列化程式碼。後端工程師可透過貼上十六進位轉儲並查看解碼後的 JSON,來除錯以 MessagePack 編碼的 WebSocket 影格、Redis 協定緩衝區或 RPC 負載。它也適用於比較 JSON、CBOR 與 MessagePack 之間的負載大小,以便為頻寬受限的系統選擇最有效率的線路格式。
資料格式、型別或變體
CBOR(RFC 8949)是一種自我描述的二進位格式,旨在達到小程式碼體積與小訊息大小,並廣泛採用於 LwM2M 與 FIDO2/WebAuthn 等 IoT 標準。MessagePack 是類似的二進位序列化格式,目標是在保持無結構描述(schema-free)的同時盡可能精簡,常見於 Redis、Fluentd 與許多 RPC 框架。兩者都比 JSON 更精簡,但為了效率而犧牲了人類可讀性。
常見陷阱與邊界情況
CBOR 支援 JSON 無法原生表示的資料型別,例如位元組字串、標籤(tags)與不定長度容器——將它們透過 JSON 來回轉換會遺失型別資訊。MessagePack 會區分原始位元組與 UTF-8 字串,而 JSON 會將其合併為單一字串型別。整數精度也可能不同:兩種格式都支援任意長度整數,但解碼到 JavaScript 時,超過 Number.MAX_SAFE_INTEGER 可能會失去精度。
何時使用此工具 vs 程式碼
此瀏覽器工具適合用於臨時檢視從網路流量擷取的二進位負載、除錯 IoT 裝置訊息,或快速比較編碼大小。若要在應用程式程式碼中進行正式的生產序列化,請使用如 cbor2(Python)、cbor-x(Node.js)或你所用語言的 msgpack 等專用函式庫;它們可處理串流、結構描述驗證與正確的型別對應,這些是瀏覽器工具無法提供的。