首页MessagePack编码/解码

MessagePack编码/解码

在线MessagePack编码/解码工具,支持JSON与MessagePack互转、十六进制/Base64/C数组输出及字节查看,适用于网络协议调试和物联网联调

粘贴抓包、设备日志或接口返回中的 MessagePack 数据

点击插入示例数据

解码结果

输入 MessagePack 数据后自动解码并显示结果

MessagePack 协议文档

MessagePack 简介

MessagePack 是一种高效二进制序列化格式,目标是在保持与 JSON 类似数据模型的同时显著减少体积并提升解析效率,常用于网络协议、嵌入式设备和高性能服务通信。

编码结构

MessagePack 通过首字节区分类型与长度:部分类型可直接在首字节包含数据或长度,其余类型使用后续 1/2/4/8 字节补充长度或值。

格式字节含义
0x00-0x7f正 fixint(0 到 127)
0x80-0x8ffixmap(0 到 15 对键值)
0x90-0x9ffixarray(0 到 15 个元素)
0xa0-0xbffixstr(长度 0 到 31)
0xc0nil
0xc2/0xc3false/true
0xcc-0xcfuint8/16/32/64
0xd0-0xd3int8/16/32/64
0xdc/0xddarray16/array32
0xde/0xdfmap16/map32

MessagePack 数据类型参考

类型格式字节说明
正整数 (fixint/uint)00-7f / cc-cf非负整数,自动按值大小选择编码长度
负整数 (fixint/int)e0-ff / d0-d3负整数,支持 8/16/32/64 位编码
浮点数ca/cb32 位或 64 位 IEEE 754 浮点数
字符串a0-bf / d9-dbUTF-8 文本,按长度使用 fixstr/str8/16/32
二进制c4-c6原始字节序列,使用 bin8/16/32
数组90-9f / dc-dd有序数据项集合,支持 fixarray/array16/array32
映射80-8f / de-df键值对对象,支持 fixmap/map16/map32
扩展类型d4-d8 / c7-c9应用自定义类型,-1 常用于 timestamp

MessagePack 与 JSON 对比

两者表达的逻辑结构接近,但 MessagePack 面向二进制传输效率,JSON 面向文本可读性与人工编辑。

MessagePack 优势
  • 体积更小,网络传输开销更低
  • 编码解码速度高,适合高吞吐场景
  • 保留二进制友好特性,便于协议扩展
  • 与 JSON 结构接近,迁移成本较低
JSON 优势
  • 纯文本可读,调试与排障直观
  • 生态支持广,跨语言处理简单
  • 可直接嵌入日志与配置文件

常见应用场景

  • 物联网设备与网关之间的高频消息传输
  • RPC 或微服务之间的二进制协议通信
  • 游戏服务器状态同步和事件广播
  • 边缘计算节点的紧凑数据交换
  • 对体积敏感的移动端网络请求

扩展类型(Ext)说明

Ext 类型允许在标准类型外定义自有语义。常见约定中 ext type = -1 用于时间戳,其他类型编号由业务协议自行约定。

Ext Type含义
-1Timestamp 扩展类型(常见约定)
0业务自定义扩展类型
1-127业务预留正类型区间
-128--2业务预留负类型区间

数据默认在您的本地浏览器上处理,不会上传至服务器。如需上传会明确提示。

© 2026 See-Tool. 保留所有权利。 | 联系站长