Я использую RapidJSON для синтаксического анализа данных JSON, но я не могу понять, как перебирать членов:
{
"members":{
"0":{
"template":"this is member 1"},
"1":{
"template":"this is member 2"}
}
}
Я попробовал следующее
e_doc["members"][iString]["template"].GetString()
внутри цикла с преобразованием индекса цикла (i) в строку, но он не распознает его как строку.
Работает как:
printf("%s", e_doc["members"]["0"]["template"].GetString());
printf("%s", e_doc["members"]["1"]["template"].GetString());
Может быть небольшая проблема, поскольку вы выполняете не итерацию по массиву, а по объекту. Тем не менее, в конце код похож.
const rapidjson::Value& membersObject = e_doc["members"];
for(rapidjson::Value::ConstMemberIterator it=membersObject.MemberBegin(); it != membersObject.MemberEnd(); it++) {
std::cout << it->value["template"].GetString();
}
Других решений пока нет …