Boost 属性 Tree 是否有为要解析的数据定义规则的方法?

Does Boost Property Tree have methods for defining rules for the data to be parsed?

我有一个项目将使用单个 JSON 文件来描述它所在目录的内部内容。 Boost 属性 Tree 库似乎是 JSON 解析库的最佳选择。然而,这个 JSON 文件(像许多其他文件一样)应该有一个非常特殊的布局,到目前为止我还没有找到在代码中表达规则的好方法。

Boost 属性 Tree 库是否有任何方法允许用户执行以下任何操作?

到目前为止,我发现 它阐明了如何将一些 JSON 键值对转换为数据结构,但它没有回答是否列出了任何功能以上皆可。

None 的指定功能得到支持。

更糟糕的是,属性 Tree 甚至不支持 JSON 数据类型。在 JSON 方面,无论如何,一切都是字符串。

哦,不直接支持数组:准备好迎接丑陋的拼凑吧。

所有这些都在解释 属性 树的 JSON 后端的 20 多行文档中。

Because of these limitations, be smart and choose for a JSON library to build your requirements upon.

属性 Tree 没过多久就因为缺少类型而放弃了(正如 sehe 指出的那样)。

为了进一步采纳 sehe 的建议,如果您正在处理 JSON,我会推荐一个用户友好的库,如 nlohmann's library。它相当快速和直观。

还有 RapidJSON,它关注内存分配的每一点,等等,影响可用性,但在(它自己的)tests 中表现最好。在转到 nlohmann 之前,我在处理单项数组时遇到了困难。