JsonReflect 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
JsonReflect 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 LGPL-3.0
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
开发厂商
地区 国产
提 交 者 寻根
适用人群 未知
收录时间 2020-05-06

软件简介

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;
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
暂无内容
暂无内容
0 评论
5 收藏
分享
返回顶部
顶部