kapok 简介及使用
版权声明:本文为 DLonng 原创文章,可以随意转载,但必须在明确位置注明出处!
简介
kapok
是一个优秀的序列化库,可以将对象序列化成 Json
格式的字符串,它同时也使用了 rapidjson
开源项目,支持 SAX
和 DOM
解析。
GitHUb 地址:kapok
GitHub 地址:rapidjson
因为项目中使用了它们,所以这里记录下使用的方法。
使用方法
使用 kapok
的方法非常简单,只需要 3 个步骤。
1.为对象增加可以序列化的属性
#include "kapok/Kapok.hpp"
struct YourType {
int a;
double b;
std::string c;
// 获取对象的元信息,这是一个宏定义,实际上就是一个函数
META(a, b, c)
}
2.序列化对象
#include "kapok/Kapok.hpp"
YourType t = { 1, 2.2, "Hello" };
// 创建一个序列化对象
Serialize sr;
// 用 sr 来序列化对象 t
sr.Serialize(t);
// 得到序列化后的对象的 json 字符串
std::string json_str = sr.GetString();
3.反序列化对象
#include "kapok/Kapok.hpp"
// 创建一个反序列化对象
DeSerializer dr;
YourType t;
// 只要你解析的是 sr.GetString() 格式即可,
// 例如你可以在服务器端通过网络发送 sr.GetString() 到客户端,
// 然后客户端使用 dr 来解析并反序列化也是可以的。
dr.Parse(json_str);
// 反序列化到对象 t
dr.DeSerializer(t);
iguana
kapok
的作者建议我们使用更好的 iguana
序列化库,下次机会在项目中用用。
iguana
地址:iguana
了解并学会使用 Json
DLonng at 05/24/17