Boost解析json格式文本

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"}
    }
}



你可能感兴趣的:(json,boost,property_tree)