nlohmann c++ json库

最近在做项目的时候遇到一个要打印出文件的需求,还要作为另外一个程序的输入。这明显是数据交换。

要么我要跟接收方定好数据格式,然后打印文件,解析文件。也不是不行,只是写这些没有技术含量的代码实在是浪费生命。

这时候就想到能不能用通用的工具来搞定?首先我想到的是json和xml。xml我是真不太喜欢,太丑了,辣眼睛。那就选json吧。

然后找json库。刚开始我看很多人推荐rapid json。说是业界最快的库。我看了几个例子,感觉不好用,或者是我没看太懂吧。如果看懂了,估计也没啥难度。后来又翻了个nlohmann的用法例子。跟stl很像。那就用这个吧。

int main()
{
    cout << "Hello world!" << endl;
    json js;
    ifstream jsFile("test.json");
    jsFile >> js ;
    double pi = js.at("pi");
    std::vector<unsigned> regs ;
    for(unsigned i=0 ; i<js.at("regs").size() ; i++)
    {
        regs.push_back(js.at("regs")[i]);
        cout<< regs[i] << endl ;
    }
    cout << pi << endl;
    jsFile.close();


    ofstream jsOut("out.json");

    jsOut<< js <<endl;
    jsOut<< js <<endl;

    jsOut.close();

    return 0;
}
{
	"pi":3.1415,
	"happy":true,
        "regs": [11,12,3]

}

读这个文件,然后打印出来,感觉很好用。

 

忘了说,这个库很好下,百度nlohmann 就会把你指到git 上下载了。

https://github.com/nlohmann/json/releases/tag/v3.9.1

我建议还是下载TAG比较好,不要直接下载master。

解压之后里面有个single include。把这个文件拷贝到项目工程下就可以直接include了。很容易,不用像某些库似的还要编译成静态动态库之类的。头文件大概900多K,里面大部分都是注释说明。

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值