Boost解析json格式文本
flyfish 2015-4-1
property_tree可以解析ini,xml,json,info等格式的文本
以下示例是解析json格式的文本
需要包含的头文件
#include <boost/property_tree/ptree.hpp> #include <boost/property_tree/json_parser.hpp> const std::string file_path="C:\\test.txt";
生成数据
void generate_user() { boost::property_tree::ptree root; boost::property_tree::ptree items; boost::property_tree::ptree item1; item1.put("ID","1"); item1.put("Name","wang"); items.push_back(std::make_pair("1",item1)); boost::property_tree::ptree item2; item2.put("ID","2"); item2.put("Name","zhang"); items.push_back(std::make_pair("2",item2)); boost::property_tree::ptree item3; item3.put("ID","3"); item3.put("Name","li"); items.push_back(std::make_pair("3",item3)); root.put_child("user",items); boost::property_tree::write_json(file_path,root); }
读取数据
void read_user() { boost::property_tree::ptree root; boost::property_tree::ptree items; boost::property_tree::read_json<boost::property_tree::ptree>(file_path,root); items=root.get_child("user"); for (boost::property_tree::ptree::iterator it=items.begin();it!=items.end();++it) { //遍历读出数据 string key=it->first;//key ID string ID=it->second.get<string>("ID"); string Name=it->second.get<string>("Name"); } }
文件中的数据
{ "user": { "1": { "ID": "1","Name": "wang"}, "2": { "ID": "2","Name": "zhang"}, "3": { "ID": "3", "Name": "li"} } }
时间: 2024-10-01 08:58:00