C++ Boost属性树是否有定义待解析数据规则的方法?
我有一个项目,它将使用一个JSON文件来描述它所包含的目录的内部内容。Boost属性树库似乎是JSON解析库的最佳选择。然而,这个JSON文件(和其他许多文件一样)应该有一个非常特殊的布局,到目前为止,我还没有找到用代码表达规则的好方法 Boost属性树库是否有任何方法允许用户执行以下操作C++ Boost属性树是否有定义待解析数据规则的方法?,c++,json,boost,boost-propertytree,C++,Json,Boost,Boost Propertytree,我有一个项目,它将使用一个JSON文件来描述它所包含的目录的内部内容。Boost属性树库似乎是JSON解析库的最佳选择。然而,这个JSON文件(和其他许多文件一样)应该有一个非常特殊的布局,到目前为止,我还没有找到用代码表达规则的好方法 Boost属性树库是否有任何方法允许用户执行以下操作 不允许未识别的密钥 根据需要或可选指定键 指定键的预期值类型(null、bool、int、float、array、dictionary) 到目前为止,我已经找到了一些关于如何将一些JSON键值对转换为数据
- 不允许未识别的密钥
- 根据需要或可选指定键
- 指定键的预期值类型(null、bool、int、float、array、dictionary)
到目前为止,我已经找到了一些关于如何将一些JSON键值对转换为数据结构的说明,但它没有回答上面列出的任何功能是否可行。指定的功能都不受支持 更糟糕的是,属性树甚至不支持JSON数据类型。在JSON方面,无论发生什么,所有内容都将是字符串 哦,数组并没有直接得到支持:为一个丑陋的混乱做好准备 所有这些都在解释属性树的JSON后端的大约20行文档中 由于这些限制,请明智地选择JSON库来构建您的需求
不支持指定的任何功能 更糟糕的是,属性树甚至不支持JSON数据类型。在JSON方面,无论发生什么,所有内容都将是字符串 哦,数组并没有直接得到支持:为一个丑陋的混乱做好准备 所有这些都在解释属性树的JSON后端的大约20行文档中 由于这些限制,请明智地选择JSON库来构建您的需求
由于缺少类型,属性树没过多久我就放弃了(正如sehe所指出的) 为了进一步了解sehe的建议,如果您正在处理JSON,我建议您使用一个用户友好的库,比如。它相当快速和直观
还有RapidJSON,它专注于内存分配的每一点,等等,影响可用性,但在(它自己的)方面表现最好。在转移到nlohmann之前,我遇到了处理单个项目数组的困难。属性树并没有过多久,我就因为缺少类型而放弃了(正如sehe所指出的) 为了进一步了解sehe的建议,如果您正在处理JSON,我建议您使用一个用户友好的库,比如。它相当快速和直观
还有RapidJSON,它专注于内存分配的每一点,等等,影响可用性,但在(它自己的)方面表现最好。在转移到nlohmann之前,我遇到了处理单个项目数组的困难。“Boost属性树库似乎是JSON解析库的最佳选择。”为什么?为什么人们坚持使用属性树库作为JSON解析器?RapidJSON真的那么难用吗?谢谢@Nicolas回应我的想法。我已经重复了一百万次了。“Boost属性树库似乎是JSON解析库的最佳选择。”为什么?为什么人们坚持使用属性树库作为JSON解析器?RapidJSON真的那么难用吗?谢谢@Nicolas回应我的想法。我已经重复了一百万次了。