Rapidjson提取键和值

rapidjson extract key and value

本文关键字:键和值 提取 Rapidjson      更新时间:2023-10-16

我试图提取数组中对象的键和值,但没有找到适当的getter:

 for (Value::ConstValueIterator itr = document["params"].Begin(); itr != document["params"].End(); ++itr)
{
    for (Value::MemberIterator m = itr->MemberBegin(); m != itr->.MemberEnd(); ++m) {
    }       
}
在第二个循环中,我想分别从迭代器中提取键和值。怎么拔牙?

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

const rapidjson::Value& V;
for (Value::ConstMemberIterator iter = V.MemberBegin(); iter != V.MemberEnd(); ++iter){
    printf("%st", iter->name.GetString());
    printf("%st", iter->value.GetString());
}

mMember*,其中Member为

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

因此键的正确getter是m->name

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