DevToys Web Pro iconDevToys Web ProBlog
Evaluează-ne:
Încearcă extensia de browser:

Codec CBOR / MessagePack

Format:
Direcție:
Ieșire:

Intrare JSON

  • Ieșire hex

  • Detalii tehnice

    Cum funcționează convertorul CBOR și MessagePack

    Ce face instrumentul

    Acest instrument codifică date JSON în formatele binare CBOR (Concise Binary Object Representation) sau MessagePack și decodifică încărcăturile binare înapoi în JSON lizibil. Afișează octeții hexazecimali brut alături de structura decodificată, ceea ce face ușoară inspectarea codificărilor binare compacte folosite în medii cu resurse limitate. Ambele direcții de codificare acceptă obiecte imbricate, tablouri și tipuri JSON standard.

    Cazuri de utilizare comune pentru dezvoltatori

    Dezvoltatorii IoT folosesc acest instrument pentru a inspecta încărcături CBOR din mesaje CoAP sau tokenuri semnate COSE fără a scrie cod de deserializare. Inginerii backend depanează cadre WebSocket codificate MessagePack, buffere de protocol Redis sau încărcături RPC lipind dump-uri hex și vizualizând JSON-ul decodificat. Este util și pentru compararea dimensiunilor încărcăturilor între JSON, CBOR și MessagePack, pentru a alege cel mai eficient format de transport pentru sisteme cu lățime de bandă limitată.

    Formate de date, tipuri sau variante

    CBOR (RFC 8949) este un format binar auto-descriptiv, conceput pentru dimensiune mică a codului și dimensiune mică a mesajelor, adoptat pe scară largă în standarde IoT precum LwM2M și FIDO2/WebAuthn. MessagePack este o serializare binară similară, care urmărește să fie cât mai compactă posibil, rămânând fără schemă, folosită frecvent de Redis, Fluentd și multe framework-uri RPC. Ambele formate sunt mai compacte decât JSON, dar sacrifică lizibilitatea umană pentru eficiență.

    Capcane frecvente și cazuri limită

    CBOR acceptă tipuri de date pe care JSON nu le poate reprezenta nativ, precum șiruri de octeți, etichete și containere cu lungime nedeterminată — trecerea acestora dus-întors prin JSON va pierde informații de tip. MessagePack face distincție între octeți brut și șiruri UTF-8, pe care JSON le reduce la un singur tip de șir. Precizia numerelor întregi poate diferi: ambele formate acceptă numere întregi de lungime arbitrară, dar decodarea în JavaScript poate pierde precizie peste Number.MAX_SAFE_INTEGER.

    Când să folosești acest instrument vs cod

    Folosiți acest instrument din browser pentru inspectarea ad-hoc a încărcăturilor binare capturate din trafic de rețea, pentru depanarea mesajelor dispozitivelor IoT sau pentru compararea rapidă a dimensiunilor de codificare. Pentru serializare în producție în codul aplicației, folosiți biblioteci dedicate precum cbor2 (Python), cbor-x (Node.js) sau msgpack pentru limbajul dvs., care gestionează streaming-ul, validarea schemelor și maparea corectă a tipurilor, pe care un instrument din browser nu le poate oferi.