閱讀862 返回首頁    go 阿裏雲 go 技術社區[雲棲]


VS2010中使用JSONCPP方法

 

下載jsoncpp後,按ReadMe文檔的說法是要先安裝的,但是安裝比較麻煩。然而事實上,我們並不需要安裝,就可以直接使用。

方法一:直接拷貝源文件。這個方法比較簡單,但不推薦,因為不便於項目管理。

  1. VS2010裏新建一個空的控製台程序(用作測試jsoncpp是否可用),名為: TestJSON
  2. 解壓下載好的文件:jsoncpp-src-0.5.0.tar.gz
  3. 將 jsoncpp-src-0.5.0\include 目錄下的json文件夾拷貝至 TestJSON 工程目錄下
  4. 將 jsoncpp-src-0.5.0\src\lib_json 目錄下的所有.h, .cpp 文件全部拷貝至 TestJSON 工程目錄下
  5. 在VS201裏引入工程目錄下剛剛從 jsoncpp-src-0.5.0 導入的文件,如圖1
  6. 在VS2010裏新建main.cpp來測試jsoncpp是否可用。代碼見文章末尾main.cpp

方法二:使用靜態鏈接庫

  1. VS2010裏新建一個空的控製台程序(用作測試jsoncpp是否可用),名為: TestJSON
  2. 解壓下載好的文件:jsoncpp-src-0.5.0.tar.gz
  3. 利用VS2010打開jsoncpp-src-0.5.0\makefiles\vs71目錄下的jsoncpp.sln,會出現三個Project:jsontest, lib_json, test_lib_json
  4. 在lib_json上 右擊-->Properties-->Configuration Properties-->C/C++-->Code Generation,注意右側的Runtime Library的內容,如圖2,看完箭頭所指的東西就可以點確定,關掉屬性頁。
  5. 編譯lib_json,顯示編譯成功後,在jsoncpp-src-0.5.0\build\vs71\debug\lib_json目錄下會生成一個json_vc71_libmtd.lib,將這個lib拷貝至TestJSON工程目錄下。
  6. 將jsoncpp-src-0.5.0\include\json目錄下的所有.h文件拷貝至TestJSON工程目錄下,並在工程Header Files引入.
  7. 將方法一裏的main.cpp添加到工程中,並在工程名上 右擊-->Properties-->Configuration Properties-->C/C++-->Code Generation, 將Runtime Library改成圖2箭頭所示內容。
  8. 在工程名上 右擊-->Properties-->Configuration Properties-->Linker-->Input, 在Additional Dependencies裏填寫json_vc71_libmtd.lib,然後確定,編譯就行了。

圖1:

圖2:

 

//測試DEMO

#include <iostream>
#include <string>
#include "json\json.h"

int main(void)
{
	std::string strValue="{\"key1\":\"value1\",\"array\":[{\"key2\":\"value2\"},{\"key2\":\"value3\"},{\"key2\":\"value4\"}]}"; 
	Json::Reader reader;//json解析
	Json::Value value;//表示一個json格式的對象
	
	if(reader.parse(strValue,value))//解析出json放到json中區
	{
		std::string out=value["key1"].asString();
		std::cout<<out<<std::endl;
		const Json::Value arrayObj=value["array"];//迭代器
        for (int i=0; i < arrayObj.size();i++)  
		{
			out=arrayObj[i]["key2"].asString();
			std::cout<<out;
			if(i!=arrayObj.size()-1)
				std::cout<<std::endl;;
		}
	}

	getchar();
	return 0;
}

 

 

再來一個源碼

#include <iostream>
#include <string>
#include "json\json.h"

int main(void)
{
	//解析Json的方法
	Json::Value root;//表示一個json格式的對象
	Json::Value arrayObj;
	Json::Value item;

	for(int i=0;i<10;i++)
	{
		item["key"]=i;
		arrayObj.append(item);
	}
	root["key1"]="value1";
	root["key2"]="value2";
	root["array"]=arrayObj;

	std::string out=root.toStyledString();
	std::cout<<out<<std::endl;
	


	getchar();
	return 0;
}

 

 

輸出結果分別是:

DEMO1:

value1
value2
value3
value4

DEMO2:

{
   "array" : [
      {
         "key" : 0
      },
      {
         "key" : 1
      },
      {
         "key" : 2
      },
      {
         "key" : 3
      },
      {
         "key" : 4
      },
      {
         "key" : 5
      },
      {
         "key" : 6
      },
      {
         "key" : 7
      },
      {
         "key" : 8
      },
      {
         "key" : 9
      }
   ],
   "key1" : "value1",
   "key2" : "value2"
}
源碼下載:https://download.csdn.net/detail/opzoonzhuzhengke/3728120

最後更新:2017-04-02 06:52:03

  上一篇:go Android中的狀態機 機製
  下一篇:go java小技巧-關於亂碼的那些個破事