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



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。