Json库旧版使用

        当你的gcc编译爆出以下函数错误:

error: ‘CharReaderBuilder’ is not a member of ‘Json’

error: ‘StreamWriterBuilder’ is not a member of ‘Json’

那么恭喜你,你的Json版本太老啦!

赶紧卸载再安装吧!

但是 如果你并不想卸载再安装,其实也可以使用旧版的接口,

以下是我提供的一种方法,如有错误还请指正!

序列化接口:

    static bool Serialize(const Json::Value &value,std::string *body)
    {
        //Json::StreamWriterBuilder swb;
        Json::Value root=value;       
	    Json::StyledWriter writer;
	    std::string s=writer.write(root);
	    //std::cout<<s<<std::endl;
        *body=s.c_str();
        return true;   
    }

反序列化接口:

    static bool UnSerialize(const std::string &body,Json::Value *value)
    {
        Json::Value crb=value;
        Json::Reader reader;                   
        //parse 反序列化
        bool ret=reader.parse(body.c_str(),crb,true);
        *value=crb;   
        return true;
    }

使用测试:

void JsonTest()
{
    Json::Value val;
    val["姓名"]="小张";
    val["年龄"]=18;
    val["性别"]="男";
    val["成绩"].append(77.5);
    val["成绩"].append(87.5);
    val["成绩"].append(97.5);
    std::string body;
    aod::JsonUtil::Serialize(val,&body);
    std::cout<<body<<std::endl;
    Json::Value stu;
    aod::JsonUtil::UnSerialize(body,&stu);
    std::cout<<stu["姓名"].asString()<<std::endl;
    std::cout<<stu["性别"].asString()<<std::endl;
    std::cout<<stu["年龄"].asInt()<<std::endl;
    for(auto &a:stu["成绩"])
    {
        std::cout<<a.asDouble()<<std::endl;
    }
}

结果:

 分享完毕!祝大家程序都没有bug!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
APIJSON是一种专为API而生的JSON网络传输协议,以及基于这套协议实现的ORM。 为 简单的增删改查、复杂的查询、简单的事务操作 提供了完全自动化的API。 能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。 适合中小型前后端分离的项目,尤其是 BaaS、Serverless、互联网创业项目和企业自用项目。 通过自动化API,前端可以定制任何数据、任何结构! 大部分HTTP请求后端再也不用写接口了,更不用写文档了! 前端再也不用和后端沟通接口或文档问题了!再也不会被文档各种错误坑了! 后端再也不用为了兼容旧接口写新版接口和文档了!再也不会被前端随时随地没完没了地烦了! 特点功能: 1、在线解析 自动生成接口文档,清晰可读永远最新 自动校验与格式化,支持高亮和收展 自动生成各种语言代码,一键下载 自动管理与测试接口用例,一键共享 自动给请求JSON加注释,一键切换 2、对于前端 不用再向后端催接口、求文档 数据和结构完全定制,要啥有啥 看请求知结果,所求即所得 可一次获取任何数据、任何结构 能去除重复数据,节省流量提高速度 3、对于后端 提供通用接口,大部分API不用再写 自动生成文档,不用再编写和维护 自动校验权限、自动管理版本、自动防SQL注入 开放API无需划分版本,始终保持兼容 支持增删改查、模糊搜索、正则匹配、远程函数等

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值