我有一些通过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()返回什么?
由于
罗斯
答案 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
的可选或默认值版本