#include "picojson.h" #include #include namespace fs = boost::filesystem; void ReadJsonData(t2l_param ¶m, const std::string json_file_path) { if ( !fs::exists(json_file_path) ) throw std::runtime_error("File : " + json_file_path + " not found"); std::ifstream ifs(json_file_path); const std::string json((std::istreambuf_iterator(ifs)), std::istreambuf_iterator()); ifs.close(); picojson::value v; const std::string err = picojson::parse(v, json); if ( !err.empty() ) throw std::runtime_error("JSON parse error : " + err); picojson::object &all = v.get(); picojson::object &connect_param_angle = all["connect_param_angle"].get(); picojson::object &connect_param_position = all["connect_param_position"].get(); param.intercept_ax = connect_param_angle["intercept_x"].get(); param.intercept_ay = connect_param_angle["intercept_y"].get(); param.intercept_ar = connect_param_angle["intercept_r"].get(); param.intercept_al = connect_param_angle["intercept_l"].get(); param.slope_ax = connect_param_angle["slope_x"].get(); param.slope_ay = connect_param_angle["slope_y"].get(); param.slope_ar = connect_param_angle["slope_r"].get(); param.slope_al = connect_param_angle["slope_l"].get(); param.slope2_ax = connect_param_angle["slope2_x"].get(); param.slope2_ay = connect_param_angle["slope2_y"].get(); param.slope2_ar = connect_param_angle["slope2_r"].get(); param.slope2_al = connect_param_angle["slope2_l"].get(); param.intercept_px = connect_param_position["intercept_x"].get(); param.intercept_py = connect_param_position["intercept_y"].get(); param.intercept_pr = connect_param_position["intercept_r"].get(); param.intercept_pl = connect_param_position["intercept_l"].get(); param.slope_px = connect_param_position["slope_x"].get(); param.slope_py = connect_param_position["slope_y"].get(); param.slope_pr = connect_param_position["slope_r"].get(); param.slope_pl = connect_param_position["slope_l"].get(); param.slope2_px = connect_param_position["slope2_x"].get(); param.slope2_py = connect_param_position["slope2_y"].get(); param.slope2_pr = connect_param_position["slope2_r"].get(); param.slope2_pl = connect_param_position["slope2_l"].get(); }