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
解壓:
tar -zvxf scons-2.1.0.tar.gz
進入到解壓目錄scons-2.1.0,執行命令:
sudo python setup.py install
安裝 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/
下,並為了方便使用,將其重命名為libjsoncpp.a
到此,配置已經完成,只需要在代碼中添加頭文件:#include <json/json.h>
即可。
程序測試
注意:在編譯里指定動態鏈接庫的地址:-ljsoncpp
測試程序:
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/
下時重命名有關
g++ -o JsonTest JsonTest.cpp -ljsoncpp
問題
如果找不到路徑的錯誤,需要編輯/etc/ld.so.conf
文件,此文件記錄了編譯器編譯時使用的動態庫路徑!那我們把/usr/local/lib
路徑加入到文件末尾就可以了!