测试提升属性树是存储基元还是子树
Testing if boost property tree stores a primitive or a subtree
我正在解析一个 JSON 文件,其中与键对应的值可以是原语(字符串)或子树。例如,用于存储有关单个雇主的人员的信息,例如
{
"employer" : "NASA";
}
或有多个雇主的人,例如
{
"employer" :
{
"weekdays" : "Taco Bell" ,
"weekends" : "Google Inc"
}
}
在解析雇主键时,我需要测试其属性树值是存储基元(单个雇主)还是子树(多个雇主)。我已经尝试了如下所示get_value_optional
,但我仍然得到一个初始化的employerName
这是一个空字符串。有没有另一种方法可以解决这个问题。
boost::optional<std::string> employerName = propertyTree.get_value_optional<std::string>();
if( employerName.is_initialized() )
{
std::string name = employerName.get(); // returns empty string if propertyTree stores a subtree
}
找到了答案:propertyTree.size()
.
相关文章:
- C++ 在堆栈中包含多态属性的类对象存储
- 如何在一个属性中动态存储基元类型
- 如何创建属性存储二进制文件
- 可以在同一 VBO 中存储不同的顶点属性和索引
- 存储模板参数包作为非类模板的属性
- 打开"GL着色器存储缓冲区对象"以替换"顶点属性"
- 将函数名称和属性存储在哈希表中
- SQLite是否可以完成此任务?存储路径名与文件属性
- 具有任何类型的属性的对象,易于存储和迭代
- 我正在尝试通过 Boost 图形库从 Graphviz DOT 文件中读取图形.如何读取存储在数组中的未知数量的属性
- 当存储在std::vector属性中时,我可以删除析构函数中的指针吗
- HDF5存储不同大小的字符串属性
- 测试提升属性树是存储基元还是子树
- BGL:使用绑定属性来存储另一个顶点的顶点描述符
- 从文件中读取并存储属性会产生错误的输出
- 为什么我的类模板的动态分配数组属性只能存储一个项
- 如何在SQL中存储具有大量(常量)属性的数据
- Boost属性树:如何在其中存储指针
- 创建一个新对象并将该对象存储在新类的向量中,属性消失
- 类属性/字段是如何存储的