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 的一部分,您可以对其进行预处理以单独存储数据。
我正在使用 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 的一部分,您可以对其进行预处理以单独存储数据。