C++使用 jsoncpp 解析json數據


整合自網路

一、安裝的方法

1、安裝 scons

  下載地址:http://sourceforge.net/projects/scons/files/scons/2.1.0/scons-2.1.0.tar.gz/download

  百度網盤:鏈接:https://pan.baidu.com/s/1tW57c9s3iCeoDi4OIDyEPQ 密碼:2wd5

  解壓:tar -zvxf scons-2.1.0.tar.gz

  進入到解壓目錄scons-2.1.0 執行命令:

    sudo python setup.py install

2、安裝 Jsoncpp

  下載地址:http://sourceforge.net/projects/jsoncpp/

  解壓:tar -zvxf jsoncpp-src-0.5.0.tar.gz

  進入到jsoncpp解壓目錄下,執行命令:

  sudo scons platform=linux-gcc

  將/jsoncpp-src-0.5.0/include/目錄下的json文件夾拷貝到 /usr/local/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

二、使用方法

1、使用 parse 接口進行轉化

Json::Reader *pJsonParser = new Json::Reader();
string strJson = "1111 {}";        //不合法json
 
Json::Value tempVal;
  
if(!pJsonParser->parse(strJson, tempVal)){
    cout << "parse error" << endl;
    return -1;
}
string name = tempVal["name"].asString();

2、數組解析

Json::Reader *pJsonParser = new Json::Reader();
string strJson = "{\"name\":\"tom\",\"sex\":\"男\",\"age\":\"24\",\"friends\":[{\"name\":\"chen\',\'sex\':\'男\"},{\"name\":\"li\",\"sex\":\"女\"}]}";

Json::Value tempVal;
   
if(!pJsonParser->parse(strJson, tempVal)){
        return -1;
}
Json::Value friends = tempVal["friends"];
for(int i = 0;i < friends.size();i++){
  cout << friends[i]["name"].asString() << endl;
}
 

3、先進行類型判斷

if(tempVal["name"].isInt()){
     int name = tempVal["name"].asInt();
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM