Linux平臺下C++使用JsonCPP解析Json字符串

JsonCPP安裝

安裝 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 解壓python

tar -zvxf scons-2.1.0.tar.gz

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

sudo python setup.py install

安裝 JsonCPP

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

tar -zvxf jsoncpp-src-0.5.0.tar.gz

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

sudo scons platform=linux-gcc

還要如下兩步操做:spa

  1. /jsoncpp-src-0.5.0/include/目錄下的json文件夾拷貝到 /usr/local/include/
  2. jsoncpp-src-0.5.0/libs/linux-gcc-4.9.1/目錄下的libjson_linux-gcc-4.9.1_libmt.a拷貝到 /usr/local/lib/ 下,併爲了方便使用,將其重命名爲libjsoncpp.a

到此,配置已經完成,只須要在代碼中添加頭文件:#include <json/json.h>便可。.net

程序測試

注意:在編譯裏指定動態連接庫的地址:-ljsoncpp 測試程序code

int main()
{
    string jsonStr = "{\"userName\":\"123456\",\"userPassword\":\"111111\"}";
    Json::Reader reader;
    Json::Value value;
    reader.parse(jsonStr,value);
    Json::Value::Members member = value.getMemberNames();
    for(Json::Value::Members::iterator iter = member.begin();iter != member.end(); ++iter)
    {
        cout<<(*iter)<<endl;    //得到key
        cout<<value[*iter].asString()<<endl;    //得到value
    }
    return 0;
}

編譯: 注意:連接庫-ljsoncpp的名字和你拷貝到 /usr/local/lib/ 下時重命名有關orm

g++ -o JsonTest JsonTest.cpp -ljsoncpp

問題

若是找不到路徑的錯誤,須要編輯/etc/ld.so.conf文件,此文件記錄了編譯器編譯時使用的動態庫路徑!那咱們把/usr/local/lib路徑加入到文件末尾就能夠了!get

相關文章
相關標籤/搜索