1.data struct
struct DT
{
std::string name;
int id;
DT():name("123"),id(0){ }
MSGPACK_DEFINE(name, id);
};
2.encode
msgpack::sbuffer buffer_;
msgpack::packer<msgpack::sbuffer> pack_(&buffer_);
pack_.pack_map(4);
pack_.pack("key_1");
pack_.pack("value_1");
pack_.pack("key_2");
pack_.pack("value_1");
pack_.pack("key_3");
pack_.pack(3);
std::vector<DT> ts;
ts.push_back(DT());
ts.push_back(DT());
ts.push_back(DT());
pack_.pack("DT");
pack_.pack(ts);
3.decode
4.python 压码解码
4.1 encode
dt = {b'key': b'value', b'key_3': 3, b'DT': [['12e', 1254], ['aa3', 1254]]}
pack = msgpack.packb(dt)
4.2 decode
unpacker = msgpack.unpackb(BUFFER)#BUFFER接收到的buffer

本文介绍了一种高效的数据序列化库 MsgPack 的使用方法,包括 C++ 中的编码和解码过程,并展示了如何利用 Python 进行数据的打包与解包。通过具体的代码示例,读者可以学习到 MsgPack 在不同编程语言间的应用技巧。
1761

被折叠的 条评论
为什么被折叠?



