- 如果要解码MsgPack,贴到左侧框内,点击「MsgPack转JSON」;
- 如果要编码JSON,贴到右侧框内,点击「JSON转MsgPack」。
原理讲解
试试
81a161cb3ff0000000000000
MessagePack 是一种高效的二进制序列化格式。它可以让你像使用 JSON 一样在多种语言之间交换数据。但它更快且占用空间更小。小整数被编码为单个字节,典型的短字符串除了字符串本身之外只需要一个额外的字节。
{"compact":true,"schema":0}
从上面例子来看,本身占27字节,压缩完只需要18字节。
MsgPack兼顾了可读性和性能,不过一些内容编码后不可读,需要进行Hex编码或者Base64编码,本工具使用Hex编码,详细请查看
Hex编码
。
MsgPack官网
MsgPack、JSON、XML横向对比
对比项目 |
Msgpack |
JSON |
XML |
数据格式 |
二进制格式 |
文本格式 |
文本格式 |
数据大小 |
通常较小 |
一般 |
通常较大 |
编码效率 |
高 |
较高 |
低 |
可读性 |
低(二进制难直接阅读) |
高(人类可读) |
高(人类可读,但较复杂) |
语言支持 |
多种编程语言支持良好 |
广泛支持多种编程语言 |
广泛支持多种编程语言 |
扩展性 |
较好,可灵活定义结构 |
较好,可通过对象和数组扩展 |
非常好,具有丰富的扩展性和自定义标签 |
适用场景 |
对数据大小和效率要求高的场景,如内部通信、存储紧凑数据等 |
数据交换、API 通信等 |
复杂的文档结构、配置文件、数据存储等 |
解析速度 |
快 |
较快 |
相对较慢 |
复杂性 |
相对简单 |
简单 |
较复杂 |