プロパティツリーを使用してブーストを使用してjsonを解析するのは初めてです。
このハッシュがある場合:
foo = {'test1',true}
ptree pt;
bool v = pt.get<bool>("test2");
キーが存在することを確認する必要があります。存在しない場合はfalseに設定します。
どうすればそれを優雅に行うことができますか?
ありがとう
プロパティツリーを使用してブーストを使用してjsonを解析するのは初めてです。
このハッシュがある場合:
foo = {'test1',true}
ptree pt;
bool v = pt.get<bool>("test2");
キーが存在することを確認する必要があります。存在しない場合はfalseに設定します。
どうすればそれを優雅に行うことができますか?
ありがとう
// bool optional
boost::optional<bool> v = pt.get_optional<bool>("test2");
// any type actually
boost::optional<std::string> v2 = pt.get_optional<std::string>("test3");
if (v) // key exists
bool bool_value = v.get();
else // not exists
v.set(false);
Boostのドキュメントから、キーを見つけてnot_found()
、新しいキーをプッシュすることができます。
assoc_iterator not_found(); 見つからないイテレータを返します。実際の連想コンテナのend()に相当します。
const_assoc_iterator not_found()const; 見つからないイテレータを返します。実際の連想コンテナのend()に相当します。
assoc_iterator find(const key_type&key); 指定されたキーを持つ子を検索します。存在しない場合はnot_found()を検索します。複数の子が同じキーを持っている場合、どの子が返されるかについての保証はありません。
const_assoc_iterator find(const key_type&key)const; 指定されたキーを持つ子を検索します。存在しない場合はnot_found()を検索します。複数の子が同じキーを持っている場合、どの子が返されるかについての保証はありません。