Кодек CBOR / MessagePack
Ввод JSON
Вывод в hex
Технические детали
Как работает конвертер CBOR и MessagePack
Что делает инструмент
Этот инструмент кодирует данные JSON в двоичные форматы CBOR (Concise Binary Object Representation) или MessagePack и декодирует двоичные полезные нагрузки обратно в удобочитаемый JSON. Он отображает сырые шестнадцатеричные байты рядом с декодированной структурой, что упрощает анализ компактных двоичных кодировок, используемых в ограниченных средах. Оба направления кодирования поддерживают вложенные объекты, массивы и стандартные типы JSON.
Распространенные сценарии использования для разработчиков
Разработчики IoT используют этот инструмент, чтобы анализировать CBOR-полезные нагрузки из сообщений CoAP или токенов, подписанных COSE, не написав ни строки кода десериализации. Backend-инженеры отлаживают WebSocket-кадры, закодированные MessagePack, буферы протокола Redis или RPC-полезные нагрузки, вставляя hex-дампы и просматривая декодированный JSON. Он также полезен для сравнения размеров полезной нагрузки между JSON, CBOR и MessagePack, чтобы выбрать наиболее эффективный формат передачи для систем с ограниченной пропускной способностью.
Форматы данных, типы или варианты
CBOR (RFC 8949) — самодокументируемый двоичный формат, разработанный для малого размера кода и малого размера сообщений, широко применяемый в IoT-стандартах, таких как LwM2M и FIDO2/WebAuthn. MessagePack — похожая двоичная сериализация, стремящаяся быть максимально компактной, оставаясь при этом без схемы, и часто используемая в Redis, Fluentd и многих RPC-фреймворках. Оба формата компактнее JSON, но жертвуют удобочитаемостью ради эффективности.
Распространенные ошибки и крайние случаи
CBOR поддерживает типы данных, которые JSON не может представить нативно, например байтовые строки, теги и контейнеры неопределённой длины — при круговом преобразовании через JSON будет потеряна информация о типах. MessagePack различает сырые байты и строки UTF-8, тогда как JSON сводит их к единому строковому типу. Точность целых чисел может отличаться: оба формата поддерживают целые числа произвольной длины, но при декодировании в JavaScript возможна потеря точности за пределами Number.MAX_SAFE_INTEGER.
Когда использовать этот инструмент, а когда — код
Используйте этот браузерный инструмент для разового анализа двоичных полезных нагрузок, захваченных из сетевого трафика, отладки сообщений IoT-устройств или быстрого сравнения размеров кодирования. Для сериализации в продакшене в коде приложения используйте специализированные библиотеки, такие как cbor2 (Python), cbor-x (Node.js) или msgpack для вашего языка — они поддерживают потоковую обработку, валидацию схем и корректное сопоставление типов, чего браузерный инструмент обеспечить не может.