Kodek CBOR / MessagePack
Dane wejściowe JSON
Wyjście hex
Szczegóły techniczne
Jak działa konwerter CBOR i MessagePack
Co robi narzędzie
To narzędzie koduje dane JSON do binarnych formatów CBOR (Concise Binary Object Representation) lub MessagePack oraz dekoduje binarne ładunki z powrotem do czytelnego dla człowieka JSON. Wyświetla surowe bajty w zapisie szesnastkowym obok zdekodowanej struktury, co ułatwia analizę kompaktowych kodowań binarnych używanych w środowiskach o ograniczonych zasobach. Oba kierunki kodowania obsługują zagnieżdżone obiekty, tablice i standardowe typy JSON.
Typowe zastosowania dla programistów
Deweloperzy IoT używają tego narzędzia do inspekcji ładunków CBOR z wiadomości CoAP lub tokenów podpisanych COSE bez pisania kodu deserializacji. Inżynierowie backendu debugują ramki WebSocket zakodowane w MessagePack, bufory protokołu Redis lub ładunki RPC, wklejając zrzuty hex i oglądając zdekodowany JSON. Jest to również przydatne do porównywania rozmiarów ładunków między JSON, CBOR i MessagePack, aby wybrać najbardziej efektywny format transmisyjny dla systemów z ograniczoną przepustowością.
Formaty danych, typy lub warianty
CBOR (RFC 8949) to samoopisujący format binarny zaprojektowany z myślą o małym rozmiarze kodu i małym rozmiarze wiadomości, szeroko przyjęty w standardach IoT, takich jak LwM2M i FIDO2/WebAuthn. MessagePack to podobna serializacja binarna, której celem jest maksymalna kompaktowość przy zachowaniu braku schematu, powszechnie używana przez Redis, Fluentd i wiele frameworków RPC. Oba formaty są bardziej kompaktowe niż JSON, ale poświęcają czytelność dla człowieka na rzecz wydajności.
Typowe pułapki i przypadki brzegowe
CBOR obsługuje typy danych, których JSON nie potrafi natywnie reprezentować, takie jak ciągi bajtów, tagi i kontenery o nieokreślonej długości — przepuszczenie ich w obie strony przez JSON spowoduje utratę informacji o typie. MessagePack rozróżnia surowe bajty i ciągi UTF-8, które JSON sprowadza do jednego typu string. Precyzja liczb całkowitych może się różnić: oba formaty obsługują liczby całkowite o dowolnej długości, ale dekodowanie do JavaScript może powodować utratę precyzji powyżej Number.MAX_SAFE_INTEGER.
Kiedy używać tego narzędzia zamiast kodu
Użyj tego narzędzia w przeglądarce do doraźnej inspekcji binarnych ładunków przechwyconych z ruchu sieciowego, debugowania wiadomości urządzeń IoT lub szybkiego porównywania rozmiarów kodowania. Do serializacji produkcyjnej w kodzie aplikacji używaj dedykowanych bibliotek, takich jak cbor2 (Python), cbor-x (Node.js) lub msgpack dla Twojego języka, które obsługują strumieniowanie, walidację schematu i poprawne mapowanie typów, czego narzędzie przeglądarkowe nie jest w stanie zapewnić.