2016-02-05 60 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()