4

我通过 boost 收集了一些 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 回答