问题描述
|
我有一些通过boost收集的JSON数据,但无法解决如何访问数组中的某些数据的问题:
JSON数据:{\“ dvm_gnd \”:{\“ num \”:4,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()返回什么?
谢谢
罗斯
解决方法
尝试这个:
BOOST_FOREACH(ptree::value_type &v,pt.get_child(\"dvm_gnd.value\")) {
float value = v.second.data();
}
,我确定您现在已经前进了,但是如果其他人遇到了这种情况,ptree会将这些数组值作为带有空白名称的子代放置,因此您想要的代码如下所示:
BOOST_FOREACH(const ptree::value_type &v,pt.get_child(\"dvm_gnd.value\")) {
float value = v.second.get<float>(\"\");
}
或者您可以使用get的可选或默认值版本