c++ - Boost Property Tree 是否有为要解析的数据定义规则的方法?

标签 c++ json boost boost-propertytree

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

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

  • 不允许使用无法识别的 key 。
  • 根据需要或可选指定 key 。
  • 指定键的预期值类型(null、bool、int、float、array、dictionary)。

到目前为止,我找到了 this previous question它阐明了如何将一些 JSON 键值对转换为数据结构,但它没有回答上面列出的任何功能是否可行。

最佳答案

指定的功能均不受支持。

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

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

所有这些都在解释 Property Tree 的 JSON 后端的 20 多行文档中。

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

关于c++ - Boost Property Tree 是否有为要解析的数据定义规则的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44221676/

相关文章:

c++ - OpenGl/Glew/GLSL 中的 Vec3 未定义

arrays - 使用数组中的一个索引

c++ - boost 检查类型是否属于给定类型的列表

c++ - Boost Thread 的 boost::unique_lock 是作用域锁吗?

c++ - 获取 out_of_range : vector error for c++ but can't figure out why

c++ - 为另一个类中的类型重载 <<

c++ - "UTF-16"和 "std::wstring"有什么区别?

jquery - 使用 jQuery 对复杂对象使用 JSON 动态更新 html 表

jquery - CherryPy 如何用 JSON 响应?

c++ - ntdll.dll 中未处理的异常