7

我正在尝试提取数组中对象的键和值,但找不到合适的 getter:

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

    }       
}

在第二个循环中,我想分别从迭代器中提取键和值。如何进行提取?

4

2 回答 2

11

假设 V 是一个具有键值对象的 JSON 对象。您可以像这样检索数据。

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());
}
于 2015-12-11T02:07:21.890 回答
0

mMember*,其中成员是

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

因此,键的正确吸气剂是m->name.

从“rapidjson/document.h”中可以明显看出这一点。如果没有独立的示例( https://stackoverflow.com/help/mcve,http://www.sscce.org/),我无法进一步测试它

于 2014-06-04T17:14:50.370 回答