2017-01-30 57 views
4

我正在使用boost屬性樹從json文件中讀取值。如何從增強屬性樹中讀取字段類型

{ 
    "some_values": 
    { 
     "field_1": "value_1", 
     "field_2": true 
    } 
} 

我可以閱讀的價值觀:

spTree->get<string>("some_values.field_1", ""); 
spTree->get<bool>("some_values.field_2", false); 

但我可以讀取存儲在任何領域的變量的類型?

+0

ptree被定義爲'typedef basic_ptree ptree;',並且不編碼任何類型信息。所有屬性都以字符串形式存儲,所以我認爲根本不可能獲取類型信息。 – shash

回答

4

Documentation says

[...]以下JSON /屬性樹映射用於:

[...] JSON值被映射到包含該值的節點。但是,所有類型信息丟失;數字以及文字「null」,「true」和「false」只是映射到它們的字符串形式。 不能映射包含子節點和數據的屬性樹節點。

因此,如果您打算使用JSON解析器,除非您編寫自己的代碼或添加其他元數據,否則沒有辦法。