DevToys Web Pro iconDevToys Web ProBlog
Ohodnoťte nás:
Vyskúšajte rozšírenie prehliadača:

Kodek CBOR / MessagePack

Formát:
Smer:
Výstup:

Vstup JSON

  • Hex výstup

  • Technické podrobnosti

    Ako funguje prevodník CBOR a MessagePack

    Čo nástroj robí

    Tento nástroj kóduje údaje JSON do binárnych formátov CBOR (Concise Binary Object Representation) alebo MessagePack a dekóduje binárne dáta späť do ľahko čitateľného JSON. Zobrazuje surové hex bajty spolu s dekódovanou štruktúrou, vďaka čomu je jednoduché kontrolovať kompaktné binárne kódovania používané v prostrediach s obmedzenými zdrojmi. Obe smerovania kódovania podporujú vnorené objekty, polia a štandardné typy JSON.

    Bežné prípady použitia pre vývojárov

    Vývojári IoT používajú tento nástroj na kontrolu CBOR payloadov z CoAP správ alebo tokenov podpísaných COSE bez písania deserializačného kódu. Backend inžinieri ladia WebSocket rámce kódované v MessagePack, buffery protokolu Redis alebo RPC payloady tak, že vložia hex dumpy a zobrazia dekódovaný JSON. Je to užitočné aj na porovnanie veľkostí payloadov medzi JSON, CBOR a MessagePack, aby ste si vybrali najefektívnejší prenosový formát pre systémy s obmedzenou šírkou pásma.

    Dátové formáty, typy alebo varianty

    CBOR (RFC 8949) je samopopisný binárny formát navrhnutý pre malú veľkosť kódu a malú veľkosť správ, široko prijatý v IoT štandardoch ako LwM2M a FIDO2/WebAuthn. MessagePack je podobná binárna serializácia, ktorá sa snaží byť čo najkompaktnejšia pri zachovaní bezschémovosti, bežne používaná v Redis, Fluentd a mnohých RPC frameworkoch. Oba formáty sú kompaktnejšie než JSON, no kvôli efektivite obetujú ľudskú čitateľnosť.

    Bežné úskalia a okrajové prípady

    CBOR podporuje dátové typy, ktoré JSON nedokáže natívne reprezentovať, napríklad bajtové reťazce, tagy a kontajnery s neurčitou dĺžkou — pri round-tripe cez JSON sa stratí typová informácia. MessagePack rozlišuje medzi surovými bajtmi a reťazcami UTF-8, ktoré JSON zlučuje do jediného typu reťazca. Presnosť celých čísel sa môže líšiť: oba formáty podporujú celé čísla ľubovoľnej dĺžky, no dekódovanie do JavaScriptu môže stratiť presnosť za hranicou Number.MAX_SAFE_INTEGER.

    Kedy použiť tento nástroj vs. kód

    Tento nástroj v prehliadači použite na ad-hoc kontrolu binárnych payloadov zachytených zo sieťovej prevádzky, ladenie správ IoT zariadení alebo rýchle porovnanie veľkostí kódovania. Na produkčnú serializáciu v aplikačnom kóde použite špecializované knižnice ako cbor2 (Python), cbor-x (Node.js) alebo msgpack pre váš jazyk, ktoré riešia streamovanie, validáciu schémy a správne mapovanie typov, čo nástroj v prehliadači nedokáže poskytnúť.