我有一个包含一些JSON内容的文件,如下所示:
{
"frame":
{
"id": "0",
"points":
[
[ "0.883", "0.553", "0" ],
[ "0.441", "0.889", "0" ],
]
},
"frame":
...
}
如何使用C ++和Boost ptree解析double数组的值?
答案 0 :(得分:24)
使用迭代器,Luke。
首先,您必须解析文件:
boost::property_tree::ptree doc;
boost::property_tree::read_json("input_file.json", doc);
...现在,因为你似乎在顶级词典中有多个“框架”键,你必须迭代它们:
BOOST_FOREACH (boost::property_tree::ptree::value_type& framePair, doc) {
// Now framePair.first == "frame" and framePair.second is the subtree frame dictionary
}
迭代行和列是一样的:
BOOST_FOREACH (boost::property_tree::ptree::value_type& rowPair, frame.get_child("points")) {
// rowPair.first == ""
BOOST_FOREACH (boost::property_tree::ptree::value_type& itemPair, rowPair.second) {
cout << itemPair.second.get_value<std::string>() << " ";
}
cout << endl;
}
我没有测试代码,但这个想法会起作用: - )