{
"name":"zhangsan",
"learn":{
"match":[
{
"start":"08:00",
"end":"10:00"
},
{
"start":"17:00",
"end":"20:00"
}
],
"english":[
{
"start":"08:00",
"end":"10:00"
}
]
}
}
#include<string>
#include<fstream>
#include<iostream>
#include"rapidjson/document.h"
#include<vector>
#include <map>
using namespace std;
int main () {
std::string str = "{\"name\": \"zhangsan\",\"learn\": {\"match\": [{\"start\": \"08:00\",\"end\": \"10:00\"},{\"start\": \"17:00\",\"end\": \"20:00\"}],\"english\": [{\"start\": \"08:00\",\"end\": \"10:00\"}]}}";
rapidjson::Document document;
document.Parse(str.c_str());
if (!document.IsObject()) {
return -1;
}
auto iter = document.FindMember("name");
if (iter != document.MemberEnd()) {
cout << iter->value.GetString() << " " << typeid(iter->value.GetString()).name() << endl;
vector<string> s;
s.push_back(iter->value.GetString());
cout<<s[0]<<" "<<typeid(s[0]).name()<<endl;
}
if (document.HasMember("learn")) {
const rapidjson::Value &chile2Value = document["learn"];
if (chile2Value.HasMember("match")) {
const rapidjson::Value &chile3Value = chile2Value["match"];
for (rapidjson::SizeType i = 0; i < chile3Value.Size(); ++i) {
std::vector<string> ss;
auto iter = chile3Value[i].FindMember("start");
if (iter != chile3Value[i].MemberEnd()) {
cout << iter->value.GetString() << endl;
}
iter = chile3Value[i].FindMember("end");
if (iter != chile3Value[i].MemberEnd()) {
cout << iter->value.GetString() << endl;
}
}
}
}
return 0;
}
zhangsan PKc
zhangsan NSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE
08:00
10:00
17:00
20:00