jsoncpp 库的使用方法
生活随笔
收集整理的這篇文章主要介紹了
jsoncpp 库的使用方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 下載jsoncpp, 地址:
http://sourceforge.net/projects/jsoncpp/
2. 編譯jsoncpp:
? 3.1 把json.h 等頭文件拷到項(xiàng)目文件夾,并INCLUDE到項(xiàng)目中。
? 3.2 右鍵工程 》 屬性 》配置屬性 》鏈接器 》常規(guī) 》附加庫目錄? 添加靜態(tài)庫的目錄。
? 3.3 右鍵工程 》 屬性 》配置屬性 》鏈接器 》輸入 》附加依賴項(xiàng)? 添加json_vc71_libmt.lib 。
完成,可以在項(xiàng)目中使用JSONCPP庫了。
錯(cuò)誤解決:
問題:
..json_value.cpp?:?fatal?error?C1083:?無法打開編譯器生成的文件:“../../build/vs71/release/lib_json\json_value.asm”:?No?such?file?or?directory
方法:修改生成靜態(tài)庫文件的工程的屬性:路徑為:菜單---項(xiàng)目--屬性---配置屬性---c/c++---輸出文件---匯編程序輸出:無列表
void readJson() {using namespace std;std::string strValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"php\":\"support\"}]}";Json::Reader reader;Json::Value value;if (reader.parse(strValue, value)){ std::string out = value["name"].asString();std::cout << out << std::endl;const Json::Value arrayObj = value["array"];for (unsigned int i = 0; i < arrayObj.size(); i++){ if (!arrayObj[i].isMember("cpp")) continue;out = arrayObj[i]["cpp"].asString();std::cout << out;if (i != (arrayObj.size() - 1)) std::cout << std::endl;} } }
參考文章:
http://www.cnblogs.com/ppboy_dxh/archive/2011/03/03/1970290.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
2. 編譯jsoncpp:
jsoncpp文件中提供了vs71的工程文件以及makerelease.py文件,用來編譯,里面分為jsontest、lib_json、test_lib_json三個(gè)工程,按照自己需要的編譯。
注意:如果使用VS默認(rèn)的編譯選項(xiàng)MTd或者M(jìn)T,在使用json_libmtd.lib的時(shí)候可能會(huì)出現(xiàn)LNK2038錯(cuò)誤(我使用的VS2012vc110環(huán)境),所以請(qǐng)修改MTD為MDd,MT為MD。
3.lib庫添加進(jìn)VS工程中:? 3.1 把json.h 等頭文件拷到項(xiàng)目文件夾,并INCLUDE到項(xiàng)目中。
? 3.2 右鍵工程 》 屬性 》配置屬性 》鏈接器 》常規(guī) 》附加庫目錄? 添加靜態(tài)庫的目錄。
? 3.3 右鍵工程 》 屬性 》配置屬性 》鏈接器 》輸入 》附加依賴項(xiàng)? 添加json_vc71_libmt.lib 。
完成,可以在項(xiàng)目中使用JSONCPP庫了。
錯(cuò)誤解決:
問題:
..json_value.cpp?:?fatal?error?C1083:?無法打開編譯器生成的文件:“../../build/vs71/release/lib_json\json_value.asm”:?No?such?file?or?directory
方法:修改生成靜態(tài)庫文件的工程的屬性:路徑為:菜單---項(xiàng)目--屬性---配置屬性---c/c++---輸出文件---匯編程序輸出:無列表
void readJson() {using namespace std;std::string strValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"php\":\"support\"}]}";Json::Reader reader;Json::Value value;if (reader.parse(strValue, value)){ std::string out = value["name"].asString();std::cout << out << std::endl;const Json::Value arrayObj = value["array"];for (unsigned int i = 0; i < arrayObj.size(); i++){ if (!arrayObj[i].isMember("cpp")) continue;out = arrayObj[i]["cpp"].asString();std::cout << out;if (i != (arrayObj.size() - 1)) std::cout << std::endl;} } }
參考文章:
http://www.cnblogs.com/ppboy_dxh/archive/2011/03/03/1970290.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的jsoncpp 库的使用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通用SQL数据库查询语句精华使用简介
- 下一篇: C++ 多线程编程总结