Sử dụng trình lặp, Lu-ca.
Trước tiên, bạn phải phân tích các tập tin:
boost::property_tree::ptree doc;
boost::property_tree::read_json("input_file.json", doc);
... bây giờ, bởi vì nó dường như bạn có nhiều "khung" chìa khóa trong từ điển cấp cao nhất bạn phải lặp qua chúng:
BOOST_FOREACH (boost::property_tree::ptree::value_type& framePair, doc) {
// Now framePair.first == "frame" and framePair.second is the subtree frame dictionary
}
iterating trên các hàng và cột là như nhau:
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;
}
tôi đã không kiểm tra mã, nhưng ý tưởng sẽ hoạt động :-)
http://www.boost.org/doc/libs/1_41_0/doc/html/property_tree/reference.html#header.boost.property_tree.json_parser_hpp – riv
PTree sẽ chấp nhận nó, nhưng nghiêm chỉnh các tên thuộc tính lặp lại không phải là JSON hợp lệ. –