【问题标题】:How to access rapidJSON objects in order如何按顺序访问 rapidJSON 对象
【发布时间】:2015-10-23 00:08:27
【问题描述】:

假设我有一个 JSON 对象

{
   "Obj1":{
          "Obj2":{
               "Obj3":{


                }
          }
      }
  }

有没有一种方法可以在不查询其名称或使用迭代器的情况下访问每个成员。

如果我有对 Obj1 的引用,如何直接获取对对象 Obj3 的引用。目前看来,我只能用迭代器来做到这一点。

【问题讨论】:

    标签: c++ json rapidjson


    【解决方案1】:
    const Value& obj2 = document["Obj1"]
    const Value& obj3 = obj2["Obj2"]
    

    【讨论】:

    • 这是查询每个对象。如果我们不知道第二个和第三个对象的名称怎么办?
    • 您询问了有关获取 Obj3 访问权限的问题。现在你正在改变问题?如果您不知道要访问的属性名称,那么 JSON 可能不适合您。
    • 只有 1 个对象。但名称因文件而异。我当然可以使用迭代器来查找第一个对象的名称。但我想要一种更简单的方法
    • 它在 JSON 中的位置是否固定?在您的示例中,您可以将 obj1 访问为: const Value& obj1 = document[0], const Value& obj2 = obj1[0]...etc
    【解决方案2】:

    使用MemberIteratorConstMemberIterator 是迭代对象值成员的唯一方法,无需事先知道键。

    【讨论】:

      猜你喜欢
      • 2017-01-12
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      • 2014-03-03
      相关资源
      最近更新 更多