7

How do I get the value out of a ConstrValueIterator? In this case I know that the elements of the array are dictionaries (aka objects).

Code summed up:

for (rapidjson::Value::ConstValueIterator itr = rawbuttons.Begin(); itr != rawbuttons.End(); ++itr) { // Ok
    if (itr->HasMember("yes")) { // Ok
        auto somestring = itr["yes"]->GetString(); // error
    }
}
Jonny
  • 15,955
  • 18
  • 111
  • 232

2 Answers2

8

Um. Iterators need to be dereferenced or whatever it's called.

for (rapidjson::Value::ConstValueIterator itr = rawbuttons.Begin(); itr != rawbuttons.End(); ++itr) { // Ok
    if (itr->HasMember("yes")) { // Ok
        auto somestring = (*itr)["yes"]->GetString(); // bingo
    }
}
Jonny
  • 15,955
  • 18
  • 111
  • 232
2

It should be

for (rapidjson::Value::ConstValueIterator itr = rawbuttons.Begin(); itr != rawbuttons.End(); ++itr) { 
if (itr->HasMember("yes")) { 
    auto somestring = (*itr)["yes"].GetString(); 
}}
Aditya
  • 21
  • 1