CBOR / MessagePack kodek
JSON unos
Hex izlaz
Tehnički detalji
Kako radi pretvarač CBOR-a i MessagePacka
Što alat radi
Ovaj alat kodira JSON podatke u binarne formate CBOR (Concise Binary Object Representation) ili MessagePack te dekodira binarne payloadove natrag u ljudima čitljiv JSON. Prikazuje sirove heksadecimalne bajtove uz dekodiranu strukturu, što olakšava pregled kompaktnih binarnih kodiranja koja se koriste u okruženjima s ograničenim resursima. Oba smjera kodiranja podržavaju ugniježđene objekte, polja i standardne JSON tipove.
Uobičajeni slučajevi upotrebe za razvojne programere
IoT razvojni inženjeri koriste ovaj alat za pregled CBOR payloadova iz CoAP poruka ili COSE-potpisanih tokena bez pisanja koda za deserijalizaciju. Backend inženjeri otklanjaju pogreške u WebSocket okvirima kodiranima u MessagePacku, Redis protocol bufferima ili RPC payloadovima tako da zalijepe heksadecimalne ispise i pregledaju dekodirani JSON. Također je koristan za usporedbu veličina payloadova između JSON-a, CBOR-a i MessagePacka kako bi se odabrao najučinkovitiji wire format za sustave s ograničenom propusnošću.
Formati podataka, vrste ili varijante
CBOR (RFC 8949) je samoopisujući binarni format dizajniran za malu veličinu koda i malu veličinu poruke, široko prihvaćen u IoT standardima poput LwM2M i FIDO2/WebAuthn. MessagePack je slična binarna serijalizacija koja nastoji biti što kompaktnija, a pritom ostati bez sheme, te se često koristi u Redis-u, Fluentd-u i mnogim RPC okvirima. Oba formata su kompaktnija od JSON-a, ali žrtvuju ljudsku čitljivost radi učinkovitosti.
Uobičajene zamke i rubni slučajevi
CBOR podržava tipove podataka koje JSON ne može izvorno prikazati, poput nizova bajtova, oznaka (tagova) i spremnika neodređene duljine — round-tripping kroz JSON izgubit će informacije o tipu. MessagePack razlikuje sirove bajtove i UTF-8 nizove, što JSON svodi na jedan tip stringa. Preciznost cijelih brojeva može se razlikovati: oba formata podržavaju cijele brojeve proizvoljne duljine, ali dekodiranje u JavaScript može izgubiti preciznost iznad Number.MAX_SAFE_INTEGER.
Kada koristiti ovaj alat umjesto koda
Koristite ovaj alat u pregledniku za ad-hoc pregled binarnih payloadova snimljenih iz mrežnog prometa, otklanjanje pogrešaka u porukama IoT uređaja ili brzo uspoređivanje veličina kodiranja. Za produkcijsku serijalizaciju u aplikacijskom kodu koristite namjenske biblioteke poput cbor2 (Python), cbor-x (Node.js) ili msgpack za vaš jezik, koje obrađuju streaming, validaciju sheme i ispravno mapiranje tipova, što alat u pregledniku ne može pružiti.