Json-5.0

另可參考https://www.cnblogs.com/yelongsan/p/4134384.html 

#include <string>
#include <json/json.h>
#include <stdio.h>
#include <fstream>
using namespace std;

void readStrJson(); //從字符串中讀取JSON
void readStrProJson(); //從字符串中讀取JSON(內容複雜些)

int main(int argc, char *argv[])
{
	readStrJson();

	cout << "\n\n";
	readStrProJson();
	system("pause");
	return 0;
}

//從字符串中讀取JSON
void readStrJson()
{
	//字符串
	const char* str =
		"{\"praenomen\":\"Gaius\",\"nomen\":\"Julius\",\"cognomen\":\"Caezar\","
		"\"born\":-100,\"died\":-44}";

	/*
	//json內容如下:
	{
		  "praenomen":"Gaius",
		  "nomen":"Julius",
		  "cognomen":"Caezar",
		  "born":-100,
		  "died":-44
	  }
	*/

	Json::Reader reader;
	Json::Value root;

	//從字符串中讀取數據
	if (reader.parse(str, root))
	{
		string praenomen = root["praenomen"].asString();
		string nomen = root["nomen"].asString();
		string cognomen = root["cognomen"].asString();
		int born = root["born"].asInt();
		int died = root["died"].asInt();

		cout << praenomen + " " + nomen + " " + cognomen
			<< " was born in year " << born
			<< ", died in year " << died << endl;
	}

}

//從字符串中讀取JSON(內容複雜些)
void readStrProJson()
{
	string strValue = "{\"name\":\"json\",\"array\":[{\"cpp\":\"jsoncpp\"},{\"java\":\"jsoninjava\"},{\"php\":\"support\"}]}";//1,3
	/*
	//json內容如下:
	{
	"name": "json″,
	"array": [               //【一個數組】
		{
			"cpp": "jsoncpp"
		},
		{
			"java": "jsoninjava"
		},
		{
			"php": "support"
		}
	]
	}
	*/


	Json::Reader reader;
	Json::Value value;

	if (reader.parse(strValue, value))
	{
		string out = value["name"].asString();
		cout << out << 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();
			cout << out;
			if (i != (arrayObj.size() - 1))
				cout << endl;
		}
	}
}

 

發佈了177 篇原創文章 · 獲贊 18 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章