How can I parse JSON arrays with C++ Boost?

北战南征 提交于 2019-12-02 19:26:14

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 :-)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!