RapidJSON:如何只解析第一级?

RapidJSON: how to parse first-level only?

我正在使用 RapidJSON 为我的游戏解析一些配置文件(material 定义、组件等)。但是,我很好奇是否可以将 RapidJSON 配置为仅解析 JSON 文档中的第一级。想象一下:

{
  "foo": "bar",
  "bar": "foo",
  "nested": {
    "foo": "bar"
  }
}

foo是字符串bar,bar是字符串foo,nested是字符串{"foo":"bar"}

这可能吗?我有几个不需要解析的嵌套文档,我不想让 RapidJSON 在它们上面浪费时间。

没有。 RapidJSON目前不支持这个。

我认为它没有多大帮助,因为它仍然需要对你想跳过的部分进行词法分析。

但是,您可以通过自定义事件处理程序过滤事件,如 this example

顺便说一句,作为游戏开发者,我认为一般的配置文件不会太大。 RapidJSON的解析速度应该远低于I/O的时间。如果您只需要 JSON 的一部分,您可以对其进行预处理以单独存储数据。