How can I parse JSON arrays with C++ Boost?
Use the iterators, Luke.
First , you have to parse the file:
boost::property_tree::ptree doc;boost::property_tree::read_json("input_file.json", doc);
... now, because it seems you have multiple "frame" keys in the top level dictionary you must iterate over them:
BOOST_FOREACH (boost::property_tree::ptree::value_type& framePair, doc) { // Now framePair.first == "frame" and framePair.second is the subtree frame dictionary}
Iterating over the rows and columns is the same:
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;}
I didn't test the code, but the idea will work :-)