1 Star 11 Fork 2

寻根 / jsonreflect

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
readme.md 1.77 KB
一键复制 编辑 原始数据 按行查看 历史
寻根 提交于 2020-04-30 22:08 . modified: readme.md

JsonReflect介绍

JsonReflect是基于C++11实现的跨平台JSON序列化与反序列化库。支持将对象序列化为JSON字符串或者将JSON字符串反序列化为对象。作者利用宏与C++11的typeid运算符实现一种动态反射机制,大大简化了序列化与反序列化工作。

安装方法

1、下载源码

git clone https://gitee.com/xungen/jsonreflect.git

2、在源码目录下执行make命令编译输出静态库文件libjson.a

3、在源码目录下执行make test命令可以查看JsonReflect库测试结果

4、源码目前下有一个名为test.cpp的示例代码,你可以参考示例代码的使用方法,示例代码内容如下:

#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;
}
C++
1
https://gitee.com/xungen/jsonreflect.git
git@gitee.com:xungen/jsonreflect.git
xungen
jsonreflect
jsonreflect
master

搜索帮助