您的位置:首页 > 编程语言 > C语言/C++

ubuntu下C++两种方法解析json

2016-06-23 22:32 597 查看
第一种

用jsoncpp,不过本人目前不知道如何在clion里面使用,只知道在命令行g++使用,哪位知道如何在clion里使用可以告诉我,谢谢。

如下步骤本人操作过两边,所以按照下面操作应该不会有问题,如有需要请认真阅读。

一、配置jsoncpp需要安装scons,在下面的网址下载jsoncpp和scons

http://sourceforge.net/projects/jsoncpp/files/

http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download

二、下载完成后首先解压scon并配置,解压到任何你想要的文件夹,本人是新建了一个Json文件夹(-C是指定目录的意思)

tar -zvxf scons-2.1.0.tar.gz -C ~/Json


然后进入该目录并安装scons,(scons-2.1.0是我解压后的文件夹名,可能大家的不是这个,要根据自己的修改)

cd ~/Json/scons-2.1.0
sudo python setup.py install


三、解压jsoncpp后进入该目录配置

tar -zvxf jsoncpp-src-0.5.0.tar.gz -C ~/Json
cd ~/Json/jsoncpp-src-0.5.0
sudo scons platform=linux-gcc


四、将/jsoncpp-src-0.5.0/include/目录下的json文件夹拷贝到/usr/include/,

然后将jsoncpp-src-0.5.0/libs/linux-gcc-4.9.1/目录下的libjson_linux-gcc-4.9.1_libmt.a 拷贝到/usr/local/lib/下,并为了方便使用,将其重命名为libjson.a

注意拷贝的时候可能会需要超级权限。

五、测试

test_json.cpp

#include<iostream>
#include<json/json.h>

using namespace std;

int main()
{
string test="{\"id\":1,\"name\":\"kurama\"}";
Json::Reader  reader;
Json::Value   value;

if(reader.parse(test,value))
{
if(!value["id"].isNull())
{
cout<<value["id"].asInt()<<endl;
cout<<value["name"].asString()<<endl;
}
}
return 0;
}


编译:

g++ test_json.cpp -o test_json.out -ljson


完成后运行:

./test_json.out


应该会输出一个数字1和名字。完毕。

第二种

使用RapidJson,该方法号称解析最快,并且不用安装,只需将头文件加入到自己的库即可。具体看链接,不在赘述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ json jsoncpp