2013-06-26 3 views
2

Я использую RapidJSON для анализа данных в формате JSON, за исключением я не могу работать, как проходное членов:RapidJSON Цитирование через массив строк?

{ 

"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()); 
+0

Вам нужно будет показать, как вы преобразовываете целые числа в строки. – moswald

ответ

7

Там может быть небольшая проблема, как вы не итерация массива, но над объектом. Однако в конце код схож.

const rapidjson::Value& membersObject = e_doc["members"]; 
for(rapidjson::Value::ConstMemberIterator it=membersObject.MemberBegin(); it != membersObject.MemberEnd(); it++) { 
    std::cout << it->value["template"].GetString(); 
}