>
Home

登龙(DLonng)

选择大于努力

kapok 简介及使用


版权声明:本文为 DLonng 原创文章,可以随意转载,但必须在明确位置注明出处!

简介

kapok 是一个优秀的序列化库,可以将对象序列化成 Json 格式的字符串,它同时也使用了 rapidjson 开源项目,支持 SAXDOM 解析。

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