JsonReflect跨平台 JSON 序列化与反序列化库
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;
}
评论
Swifter.Json功能强大、高性能的 JSON 序列化/反序列化库
功能强大、高性能的 JSON 序列化和反序列化库,适用于 .Net 平台。特性(1): 支持深度复杂
Swifter.Json功能强大、高性能的 JSON 序列化/反序列化库
0
Swifter.Json功能强大、高性能的 JSON 序列化/反序列化库
功能强大、高性能的JSON序列化和反序列化库,适用于 .Net平台。特性(1): 支持深度复杂的对象结构且易于使用。(2): 用 $ref 表示重复和循环引用的序列化和反序列化。(3): 目前唯一支持
Swifter.Json功能强大、高性能的 JSON 序列化/反序列化库
0
Sonic-bytedanceJSON 序列化和反序列化库
Sonic是一个非常快的JSON序列化和反序列化库,由JIT(即时编译)和SIMD(单指令多数据)加速。RequirementGo1.15/1.16/1.17Linux/darwinOS带有AVX指令
Sonic-bytedanceJSON 序列化和反序列化库
0
tplC 序列化或反序列化库
tpl是一个开源的小项目,其主要是提供一个可以序列化或反序列化C语言数据的一个API函数库,数据以自然的二进制形式存储。tpl号称是最有效率的也是最快的,它可以把你内存中的数据存放到文件中,并可以在你
tplC 序列化或反序列化库
0