1. 程式人生 > >ubuntu下C++兩種方法解析json

ubuntu下C++兩種方法解析json

第一種
用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,該方法號稱解析最快,並且不用安裝,只需將標頭檔案加入到自己的庫即可。具體看連結,不在贅述。