赞
踩
输入是一个json文件如下
VirtualWall.json {"LAYERSUM":1, "LAYER":[ { "LAYERNUM":0, "LINESUM":23, "LINE":[ { "BEGIN":{"X":-3028.6428,"Y":-10671.736}, "END":{"X":-3167.0588,"Y":23688.873}, "LINENUM":1,"CONFIG":1 }, { "BEGIN":{"X":-3028.2437,"Y":-10476.9}, "END":{"X":29358.871,"Y":-10387.55},"LINENUM":2,"CONFIG":1 }, { "BEGIN":{"X":-555.5391,"Y":3323.65}, "END":{"X":-800.3256,"Y":26135.783},"LINENUM":3,"CONFIG":1 }, { "BEGIN":{"X":-601.88916,"Y":-8386.228}, "END":{"X":26273.258,"Y":-8285.991},"LINENUM":4,"CONFIG":1 }, { "BEGIN":{"X":26273.258,"Y":-8285.991}, "END":{"X":26051.678,"Y":26338.797},"LINENUM":5,"CONFIG":1}, { "BEGIN":{"X":28225.521,"Y":-10206.251}, "END":{"X":27903.93,"Y":26526.918},"LINENUM":6,"CONFIG":1 } ] } ] }
json中含有一系列的线段起点和终点,我们的目标时是其提取出来。
代码如下
#include <boost/property_tree/ptree.hpp> #include <boost/property_tree/json_parser.hpp> #include <iostream> int main() { try { // 创建一个 property tree 对象 boost::property_tree::ptree pt; boost::property_tree::read_json("/home/juchunyu/20231013/240606/json_read/VirtualWall.json", pt); // 从 property tree 中获取数据 int layerSum = pt.get<int>("LAYERSUM"); std::cout << "LAYERSUM: " << layerSum << std::endl; // 获取名为 "LAYER" 的数组 const boost::property_tree::ptree& layerArray = pt.get_child("LAYER"); int i = 0; // 遍历每个图层 for (const auto& layer : layerArray) { // 获取每个图层的 "LINE" 数组 const boost::property_tree::ptree& lineArray = layer.second.get_child("LINE"); // 遍历每条线 for (const auto& line : lineArray) { // 获取 BEGIN 和 END 的 X、Y 坐标 double beginX = line.second.get<double>("BEGIN.X"); double beginY = line.second.get<double>("BEGIN.Y"); double endX = line.second.get<double>("END.X"); double endY = line.second.get<double>("END.Y"); // 输出 BEGIN 和 END 的坐标信息 std::cout << "=====" << i << "==========" << std::endl; std::cout << "BEGIN: X=" << beginX << ", Y=" << beginY << std::endl; std::cout << "END: X=" << endX << ", Y=" << endY << std::endl; i++; } } } catch (boost::property_tree::ptree_error& e) { std::cerr << "Error reading JSON: " << e.what() << std::endl; } return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。