另可參考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;
}
}
}