Kodek CBOR / MessagePack
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.