rapidjson: извлечение параметра из JsonObject с использованием rapidjson

У меня есть jsonObject, который выглядит

{"Types":[{"Mtype":"text/plain","time":"Thus:24:32:02"},{"MtypeSec":"text/plain","time":"Thus:24:32:02"}]}

Я хотел знать, как я могу извлечь Mtype и время? это Types jsonArray ??

2

Решение

Похоже Types является массивом, но массивы являются подклассом Object вот почему IsObject() возвращает истину. Вам следует позвонить IsArray() на нем, чтобы увидеть, если это массив.

Правильный синтаксис будет document["Types"][0]["Mtype"].GetString()или вы можете перебрать его с помощью следующего:

for (SizeType i = 0; i < document["Types"].Size(); i++){
std::string strval;
if(document["Types"][i].hasMember("Mtype")){
strval = document["Types"][i]["Mtype"].GetString();
} else if(document["Types"][i].hasMember("mtypeSec")){
strval = document["Types"][i]["mtypeSec"].GetString();
} else if(document["Types"][i].hasMember("time")){
strval = document["Types"][i]["time"].GetString();
} else if(/*other member test*/){
//do something with other member
} else {
//base case, member not in the list of useful members
}
//do something useful with strval
....
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]