从JSON数据中提升访问浮点数组

时间:2011-04-14 16:18:34

标签: json boost-propertytree

我有一些通过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()返回什么?

由于

罗斯

2 个答案:

答案 0 :(得分:3)

试试这个:

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

答案 1 :(得分:2)

我相信你现在已经开始了,但是如果遇到其他人,ptree将这些数组值作为具有空白名称的子项放置,所以你想要的代码看起来像:

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

或者您可以使用get

的可选或默认值版本