Kodek CBOR / MessagePack
Vnos JSON
Heksadecimalni izhod
Tehnične podrobnosti
Kako deluje pretvornik CBOR in MessagePack
Kaj orodje počne
To orodje kodira podatke JSON v binarna formata CBOR (Concise Binary Object Representation) ali MessagePack ter dekodira binarne podatkovne pakete nazaj v človeku berljiv JSON. Prikaže surove šestnajstiške bajte skupaj z dekodirano strukturo, kar olajša pregled kompaktnih binarnih kodiranj, ki se uporabljajo v okoljih z omejenimi viri. Obe smeri kodiranja podpirata gnezdene objekte, polja in standardne tipe JSON.
Pogosti primeri uporabe za razvijalce
Razvijalci IoT uporabljajo to orodje za pregled CBOR paketov iz sporočil CoAP ali žetonov, podpisanih s COSE, brez pisanja kode za deserializacijo. Backend inženirji razhroščujejo okvirje WebSocket, kodirane z MessagePack, medpomnilnike protokola Redis ali RPC pakete tako, da prilepijo šestnajstiške izpise in si ogledajo dekodirani JSON. Uporabno je tudi za primerjavo velikosti paketov med JSON, CBOR in MessagePack, da izberete najučinkovitejši format prenosa za sisteme z omejeno pasovno širino.
Podatkovni formati, tipi ali različice
CBOR (RFC 8949) je samopopisni binarni format, zasnovan za majhno velikost kode in majhno velikost sporočil, široko sprejet v standardih IoT, kot sta LwM2M in FIDO2/WebAuthn. MessagePack je podobna binarna serializacija, ki želi biti čim bolj kompaktna, hkrati pa ostati brez sheme, in se pogosto uporablja pri Redis, Fluentd ter v številnih ogrodjih RPC. Oba formata sta bolj kompaktna kot JSON, vendar zaradi učinkovitosti žrtvujeta berljivost za človeka.
Pogoste pasti in robni primeri
CBOR podpira podatkovne tipe, ki jih JSON ne more izvorno predstaviti, kot so bajtni nizi, oznake (tags) in vsebniki nedoločene dolžine — pri krožnem pretvarjanju prek JSON se izgubi informacija o tipu. MessagePack razlikuje med surovimi bajti in nizi UTF-8, kar JSON združi v en sam tip niza. Natančnost celih števil se lahko razlikuje: oba formata podpirata cela števila poljubne dolžine, vendar lahko dekodiranje v JavaScript izgubi natančnost nad Number.MAX_SAFE_INTEGER.
Kdaj uporabiti to orodje namesto kode
To brskalniško orodje uporabite za ad-hoc pregled binarnih paketov, zajetih iz omrežnega prometa, razhroščevanje sporočil naprav IoT ali hitro primerjavo velikosti kodiranja. Za produkcijsko serializacijo v aplikacijski kodi uporabite namenske knjižnice, kot so cbor2 (Python), cbor-x (Node.js) ali msgpack za vaš jezik, ki obravnavajo pretakanje, validacijo sheme in pravilno preslikavo tipov, česar brskalniško orodje ne more zagotoviti.