我试图在数组中提取关键字和对象的值但却找不到合适的getter:
for (Value::ConstValueIterator itr = document["params"].Begin(); itr != document["params"].End(); ++itr)
{
for (Value::MemberIterator m = itr->MemberBegin(); m != itr->.MemberEnd(); ++m) {
}
}
在第二个循环中,我想分别从迭代器中提取键和值。怎么做提取?
答案 0 :(得分:6)
假设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());
}
答案 1 :(得分:0)
m
是Member*
,其中会员
struct Member {
GenericValue<Encoding, Allocator> name; //!< name of member (must be a string)
GenericValue<Encoding, Allocator> value; //!< value of member.
};
因此,密钥的正确getter是m->name
。
很明显,来自&#34; rapidjson / document.h&#34;。如果没有自包含的示例(https://stackoverflow.com/help/mcve,http://www.sscce.org/),我无法进一步测试。