CBOR / MessagePack кодек
JSON вход
Hex изход
Технически подробности
Как работи конверторът за CBOR и MessagePack
Какво прави инструментът
Този инструмент кодира JSON данни в двоичните формати CBOR (Concise Binary Object Representation) или MessagePack и декодира двоични полезни товари обратно в четим за хората JSON. Показва суровите hex байтове заедно с декодираната структура, което улеснява инспектирането на компактни двоични кодировки, използвани в среди с ограничени ресурси. И в двете посоки на кодиране се поддържат вложени обекти, масиви и стандартни JSON типове.
Често срещани случаи на употреба от разработчици
IoT разработчиците използват този инструмент, за да инспектират CBOR полезни товари от CoAP съобщения или COSE-подписани токени, без да пишат код за десериализация. Backend инженерите дебъгват MessagePack-кодирани WebSocket кадри, Redis protocol buffers или RPC полезни товари, като поставят hex dump-ове и преглеждат декодирания JSON. Полезен е и за сравняване на размерите на полезните товари между JSON, CBOR и MessagePack, за да се избере най-ефективният wire формат за системи с ограничена пропускателна способност.
Формати на данни, типове или варианти
CBOR (RFC 8949) е самоописващ се двоичен формат, проектиран за малък размер на кода и малък размер на съобщенията, широко възприет в IoT стандарти като LwM2M и FIDO2/WebAuthn. MessagePack е подобна двоична сериализация, която цели да бъде възможно най-компактна, като остава без схема, и често се използва от Redis, Fluentd и много RPC рамки. И двата формата са по-компактни от JSON, но жертват четимостта за хората в името на ефективността.
Често срещани капани и гранични случаи
CBOR поддържа типове данни, които JSON не може да представи нативно, като байтови низове, тагове и контейнери с неопределена дължина — при round-trip през JSON ще се загуби информация за типовете. MessagePack прави разлика между сурови байтове и UTF-8 низове, което JSON свежда до един-единствен тип низ. Прецизността на целите числа може да се различава: и двата формата поддържат цели числа с произволна дължина, но декодирането в JavaScript може да доведе до загуба на точност над Number.MAX_SAFE_INTEGER.
Кога да използвате този инструмент вместо код
Използвайте този браузърен инструмент за ad-hoc инспекция на двоични полезни товари, уловени от мрежов трафик, за дебъгване на съобщения от IoT устройства или за бързо сравняване на размерите на кодиране. За продукционна сериализация в кода на приложението използвайте специализирани библиотеки като cbor2 (Python), cbor-x (Node.js) или msgpack за вашия език, които се справят със стрийминг, валидиране на схема и коректно съпоставяне на типове, каквото един браузърен инструмент не може да предостави.