JsonReflect跨平臺 JSON 序列化與反序列化庫
JsonReflect介紹
JsonReflect是基于C++11實(shí)現(xiàn)跨平臺JSON序列化與反序列化庫。支持將對象序列化為JSON字符串或者將JSON字符串反序列化的對象。作者利用宏與C++11的typeid運(yùn)算符實(shí)現(xiàn)一種動態(tài)反射機(jī)制,大大簡化了序列化與反序列化工作。
安裝方法
1、下載源碼
git clone https://gitee.com/xungen/jsonreflect.git
2、在源碼目錄下執(zhí)行make命令編譯輸出靜態(tài)庫文件libjson.a
3、在源碼目錄下執(zhí)行make test命令可以查看JsonReflect庫測試結(jié)果
4、源碼目前下有一個名為test.cpp的示例代碼,你可以參考示例代碼的使用方法,示例代碼內(nèi)容如下:
#include "json.h"
JsonEntity(Item)
{
public:
//定義名為ival的int類型成員
rint(ival);
//定義名為bval的bool類型成員
rbool(bval);
//定義名為sval的string類型成員
rstring(sval);
};
JsonEntity(Entity)
{
public:
//定義名為ival的int類型成員
rint(ival);
//定義名為bval的bool類型成員
rbool(bval);
//定義名為sval的string類型成員
rstring(sval);
//定義名為list的vector<Item>類型成員
rarray(Item, list);
};
int main(int argc, char** argv)
{
Entity obj;
Entity tmp;
sp<Item> item;
obj.ival = 0;
obj.bval = false;
obj.sval = "zero";
item = obj.list.add();
item->ival = 1;
item->bval = true;
item->sval = "one";
item = obj.list.add();
item->ival = 2;
item->bval = true;
item->sval = "two";
item = obj.list.add();
item->ival = 3;
item->bval = true;
item->sval = "three";
//對象序列化為JSON字符串
cout << obj.toString() << endl << endl;
cout << endl;
//JSON字符串反序列化為對象
tmp.fromString(obj.toString());
cout << tmp.toString() << endl << endl;
return 0;
}評論
圖片
表情
