4

ブーストを介して収集された JSON データがいくつかありますが、配列内の一部のデータにアクセスする方法がわかりません。

JSON データ: {"dvm_gnd": {"num": 4, "value": [1,2,3,4]}, "xx_gn": {"num: 1, "value": 5}}

次を使用して、「num」と単一の「value」(5) を簡単に取得できます。

BOOST_FOREACH(ptree::value_type &v, pt) {
  float value = v.second.get<float>("value")
}

しかし、配列の要素にアクセスする方法がわかりませんか? ptree.get() は何を返しますか?

ありがとう

ロス

4

2 に答える 2

3

これを試して:

BOOST_FOREACH(ptree::value_type &v, pt.get_child("dvm_gnd.value")) {
  float value = v.second.data();
}
于 2011-04-19T21:23:55.833 に答える
2

もう先に進んだと思いますが、他の誰かがこれに遭遇した場合に備えて、ptree はそれらの配列値を空白の名前を持つ子として配置するため、必要なコードは次のようになります。

BOOST_FOREACH(const ptree::value_type &v, pt.get_child("dvm_gnd.value")) {
  float value = v.second.get<float>("");
}

または、get のオプションまたはデフォルト値バージョンを使用できます。

于 2013-01-29T22:40:01.740 に答える