MsgPack,类似于JSON,但更快更轻

  • 如果要解码MsgPack,贴到左侧框内,点击「MsgPack转JSON」;
  • 如果要编码JSON,贴到右侧框内,点击「JSON转MsgPack」。

原理讲解

试试

81a161cb3ff0000000000000
以{'compact':true,'schema':0}为例,本身占27字节,压缩完只需要18字节。

MessagePack 是一种高效的二进制序列化格式。它可以让你像使用 JSON 一样在多种语言之间交换数据。但它更快且占用空间更小。小整数被编码为单个字节,典型的短字符串除了字符串本身之外只需要一个额外的字节。

{"compact":true,"schema":0}

从上面例子来看,本身占27字节,压缩完只需要18字节。

MsgPack兼顾了可读性和性能,不过一些内容编码后不可读,需要进行Hex编码或者Base64编码,本工具使用Hex编码,详细请查看 Hex编码 。

MsgPack官网

MsgPack、JSON、XML横向对比

对比项目 Msgpack JSON XML
数据格式 二进制格式 文本格式 文本格式
数据大小 通常较小 一般 通常较大
编码效率 高 较高 低
可读性 低(二进制难直接阅读) 高(人类可读) 高(人类可读,但较复杂)
语言支持 多种编程语言支持良好 广泛支持多种编程语言 广泛支持多种编程语言
扩展性 较好,可灵活定义结构 较好,可通过对象和数组扩展 非常好,具有丰富的扩展性和自定义标签
适用场景 对数据大小和效率要求高的场景,如内部通信、存储紧凑数据等 数据交换、API 通信等 复杂的文档结构、配置文件、数据存储等
解析速度 快 较快 相对较慢
复杂性 相对简单 简单 较复杂

Feedback