DevToys Web Pro iconDevToys Web Pro部落格
為我們評分:
試用瀏覽器擴充功能:

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 等專用函式庫;它們可處理串流、結構描述驗證與正確的型別對應,這些是瀏覽器工具無法提供的。