rapidjson extract key and value

2020-03-23 18:06发布

I'm trying to extract the key and the value of an object in array but don't find the proper getter:

 for (Value::ConstValueIterator itr = document["params"].Begin(); itr != document["params"].End(); ++itr)
{
    for (Value::MemberIterator m = itr->MemberBegin(); m != itr->.MemberEnd(); ++m) {

    }       
}

in the second loop, I want to extract the key and value from the iterator separately. how to do the extraction?

2条回答
家丑人穷心不美
2楼-- · 2020-03-23 18:48

Suppose V is a JSON object which has key-value object. You can retrieve data like this.

const rapidjson::Value& V;
for (Value::ConstMemberIterator iter = V.MemberBegin(); iter != V.MemberEnd(); ++iter){
    printf("%s\t", iter->name.GetString());
    printf("%s\t", iter->value.GetString());
}
查看更多
Lonely孤独者°
3楼-- · 2020-03-23 18:54

m is Member*, where Member is

struct Member { 
    GenericValue<Encoding, Allocator> name;     //!< name of member (must be a string)
    GenericValue<Encoding, Allocator> value;    //!< value of member.
};

Thus the proper getter for the key is m->name.

That much is obvious from "rapidjson/document.h". I can't test it further without a self-contained example (https://stackoverflow.com/help/mcve, http://www.sscce.org/).

查看更多
登录 后发表回答