DevToys Web Pro iconDevToys Web ProBlog
Ohodnoťte nás:
Vyzkoušejte rozšíření pro prohlížeč:

Kodek CBOR / MessagePack

Formát:
Směr:
Výstup:

Vstup JSON

  • Hex výstup

  • Technické detaily

    Jak funguje převodník CBOR a MessagePack

    Co nástroj dělá

    Tento nástroj kóduje data JSON do binárních formátů CBOR (Concise Binary Object Representation) nebo MessagePack a dekóduje binární payloady zpět do čitelného JSON. Zobrazuje surové hex bajty vedle dekódované struktury, takže je snadné kontrolovat kompaktní binární kódování používaná v prostředích s omezenými prostředky. Oba směry kódování podporují vnořené objekty, pole a standardní typy JSON.

    Běžné případy použití pro vývojáře

    Vývojáři IoT používají tento nástroj ke kontrole payloadů CBOR ze zpráv CoAP nebo tokenů podepsaných COSE bez psaní deserializačního kódu. Backend inženýři ladí rámce WebSocket kódované v MessagePack, buffery protokolu Redis nebo payloady RPC tak, že vloží hex dumpy a zobrazí dekódovaný JSON. Hodí se také pro porovnání velikostí payloadů mezi JSON, CBOR a MessagePack, aby bylo možné zvolit nejefektivnější formát pro přenos v systémech s omezenou šířkou pásma.

    Datové formáty, typy nebo varianty

    CBOR (RFC 8949) je samopopisný binární formát navržený pro malou velikost kódu i zpráv, široce používaný ve standardech IoT, jako jsou LwM2M a FIDO2/WebAuthn. MessagePack je podobná binární serializace, která se snaží být co nejkompaktnější a zároveň zůstat bez schématu, běžně používaná v Redis, Fluentd a mnoha RPC frameworkách. Oba formáty jsou kompaktnější než JSON, ale kvůli efektivitě obětují lidskou čitelnost.

    Běžné nástrahy a okrajové případy

    CBOR podporuje datové typy, které JSON nativně neumí reprezentovat, například bajtové řetězce, tagy a kontejnery s neurčitou délkou — jejich převod tam a zpět přes JSON povede ke ztrátě typové informace. MessagePack rozlišuje mezi surovými bajty a řetězci UTF-8, což JSON sloučí do jediného typu řetězce. Přesnost celých čísel se může lišit: oba formáty podporují celá čísla libovolné délky, ale dekódování do JavaScriptu může ztratit přesnost nad Number.MAX_SAFE_INTEGER.

    Kdy použít tento nástroj vs. kód

    Tento nástroj v prohlížeči použijte pro ad-hoc kontrolu binárních payloadů zachycených ze síťového provozu, ladění zpráv zařízení IoT nebo rychlé porovnání velikostí kódování. Pro produkční serializaci v aplikačním kódu použijte specializované knihovny, jako jsou cbor2 (Python), cbor-x (Node.js) nebo msgpack pro váš jazyk, které zvládají streamování, validaci schématu a správné mapování typů, což nástroj v prohlížeči nemůže poskytnout.