2016-02-05 71 views
0

我正在解析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

找到了答案'propertyTree.size()'。我刚刚取消了这个问题,因为我认为答案可能对未来的其他人有用。 – Olumide

+1

然后考虑[写你自己的答案](http://stackoverflow.com/help/self-answer)(你也可以在48小时后接受它)。这将标记为在搜索结果中回答。 – rhashimoto

+0

@Olumide什么rhashimoto说 – sehe

回答

0

找到了答案:propertyTree.size()