循环遍历RapidJson中的数组并获取对象元素

时间:2015-08-31 02:33:12

标签: c++ rapidjson

如何从ConstrValueIterator中获取值?在这种情况下,我知道数组的元素是字典(aka对象)。

代码总结:

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

2 个答案:

答案 0 :(得分:4)

庵。迭代器需要被解除引用或者它被称为。

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

答案 1 :(得分:1)

应该是

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