【问题标题】:rapidjson extract key and valuerapidjson 提取键和值
【发布时间】:2014-05-27 10:29:16
【问题描述】:

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

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

    }       
}

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

【问题讨论】:

  • 你能显示你的 JSON 文本吗?

标签: c++ json rapidjson


【解决方案1】:

假设 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());
}

【讨论】:

    【解决方案2】:

    mMember*,其中 Member 是

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

    因此,密钥的正确 getter 是 m-&gt;name

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 2015-05-17
      • 2021-02-21
      • 2019-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多