boost 从 JSON 数据访问浮点数组

发布于 2024-11-01 00:14:37 字数 378 浏览 0 评论 0原文

我通过 boost 收集了一些 JSON 数据,但无法弄清楚如何访问数组中的一些数据:

JSON data : {"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() 返回

什么

I have some JSON data collected via boost and I can not work out how to access some of the data that is in an array:

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

I can easily get the "num" and single "value" (5) out using:

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

However I have no idea how to access the elements of the array out? What does the ptree.get() return?

Thanks

Ross

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

司马昭之心 2024-11-08 00:14:37

试试这个:

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

Try this:

BOOST_FOREACH(ptree::value_type &v, pt.get_child("dvm_gnd.value")) {
  float value = v.second.data();
}
岛歌少女 2024-11-08 00:14:37

我确信您现在已经继续前进,但万一其他人遇到这种情况,ptree 会将这些数组值作为具有空白名称的子项,因此您想要的代码如下所示:

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

或者您可以使用可选或默认值get 的值版本

I'm sure you've moved on by now, but in case someone else comes across this, ptree puts those array values as children with a blank name, so the code you want looks something like:

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

Or you can use the optional or default value version of get

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文