/json文件解析
int read_rect_info(string datajson)
{
//读流文件形式
ifstream in("./rect/rect.json", ios::binary);
JSONCPP_STRING err;
Json::Value root;
Json::CharReaderBuilder builder;
if (!parseFromStream(builder, in, &root, &err)) //从ifs中读取数据到jsonRoot
{
cout << "json file is not find...";
return EXIT_FAILURE;
}
std::cout << root.toStyledString() << std::endl; //输出到控制台
in.close();
#if 0 //读字符串形式
const std::string rawJson = datajson;
const auto rawJsonLength = static_cast<int>(rawJson.length());
const std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
if (!reader->parse(rawJson.c_str(), rawJson.c_str() + rawJsonLength, &root,
&err)) {
std::cout << "error" << std::endl;
return EXIT_FAILURE;
}
#endif
for (int i = 0; i < root.size(); i++)
{
rect_area *element=new rect_area;
element->area_name = root[i]["area_name"].asString();
element->x = root[i]["rect_x"].asInt();
element->y = root[i]["rect_y"].asInt();
element->width = root[i]["rect_width"].asInt();
element->heigth = root[i]["rect_heigth"].asInt();
rect_map.insert(std::make_pair(element->area_name, element));
}
return EXIT_SUCCESS;
}