Introduction JSON (JavaScript Object Notation) is a lightweight data-interchange format. It can represent integer, real number, string, an ordered sequence of value, and a collection of name/value pairs. For detail: http://www.json.org/index.html C++要使用JSON來解析資料,一般采用 jsoncpp
.
下載下傳jsoncpp後,按ReadMe文檔的說法是要先安裝的,但是安裝比較麻煩。然而事實上,我們并不需要安裝,就可以直接使用。
方法一:直接拷貝源檔案。這個方法比較簡單,但不推薦,因為不便于項目管理。
- VS2008裡建立一個空的控制台程式(用作測試jsoncpp是否可用),名為: TestJSON
- 解壓下載下傳好的檔案:jsoncpp-src-0.5.0.tar.gz
- 将 jsoncpp-src-0.5.0\include 目錄下的json檔案夾拷貝至 TestJSON 工程目錄下
- 将 jsoncpp-src-0.5.0\src\lib_json 目錄下的所有.h, .cpp 檔案全部拷貝至 TestJSON 工程目錄下
- 在VS2008裡引入工程目錄下剛剛從 jsoncpp-src-0.5.0 導入的檔案,如圖1
- 在VS2008裡建立main.cpp來測試jsoncpp是否可用。代碼見文章末尾main.cpp
方法二:使用靜态連結庫
- 利用VS2008打開jsoncpp-src-0.5.0\makefiles\vs71目錄下的jsoncpp.sln,會出現三個Project:jsontest, lib_json, test_lib_json
- 在lib_json上 右擊-->Properties-->Configuration Properties-->C/C++-->Code Generation,注意右側的Runtime Library的内容,如圖2,看完箭頭所指的東西就可以點确定,關掉屬性頁。
- 編譯lib_json,顯示編譯成功後,在jsoncpp-src-0.5.0\build\vs71\debug\lib_json目錄下會生成一個json_vc71_libmtd.lib,将這個lib拷貝至TestJSON工程目錄下。
- 将jsoncpp-src-0.5.0\include\json目錄下的所有.h檔案拷貝至TestJSON工程目錄下,并在工程Header Files引入.
- 将方法一裡的main.cpp添加到工程中,并在工程名上 右擊-->Properties-->Configuration Properties-->C/C++-->Code Generation, 将Runtime Library改成圖2箭頭所示内容。
- 在工程名上 右擊-->Properties-->Configuration Properties-->Linker-->Input, 在Additional Dependencies裡填寫json_vc71_libmtd.lib,然後确定,編譯就行了。
圖1:

圖2:
/* 測試jsoncpp的使用
* [email protected]
*/
#include <iostream>
#include "json/json.h"
using namespace std;
using namespace Json; //json的命名空間
int main()
{
/*JSON DATA as following: //一個json類型的資料
{
"test : 5
}*/
string test = "{\"test\" : 5}"; //儲存上文的json類型的資料
//以下涉及json的操作,将在後文中涉及,此處為簡單應用,不解釋,你懂的
Reader reader;
Value value;
if (reader.parse(test, value))
{
int i = 0;
if (!value["test"].isNull())
{
i = value["test"].asInt();
cout << i << endl;
}
}
return 0;
}