DevToys Web Pro iconDevToys Web ProBlog
Ocijenite nas:
Isprobajte proširenje preglednika:

CBOR / MessagePack kodek

Format:
Smjer:
Izlaz:

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.