我正在解析一个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
}
答案 0 :(得分:0)
找到答案:propertyTree.size()
。