У меня есть jsonObject, который выглядит
{"Types":[{"Mtype":"text/plain","time":"Thus:24:32:02"},{"MtypeSec":"text/plain","time":"Thus:24:32:02"}]}
Я хотел знать, как я могу извлечь Mtype и время? это Types
jsonArray ??
Похоже 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
....
}
Других решений пока нет …