微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jsoncpp的入门学习

JsonCpp是一个开源的跨平台库,实现C++与Json数据的解析与相互转换,轻量级,易使用。项目地址:http://jsoncpp.sourceforge.net/

这里有个比较不错的介绍:

http://www.cnblogs.com/kex1n/archive/2011/12/02/2272328.html


首先下载源码,编译,认为vs71工程,我用的vs2010进行编译,可以直接编译通过。但是Release版本库使用时提示缺少 xxx.asm文件解决办法:

在Release下

1) 打开lib_json -> Properties -> Configuration Properties -> C/C++ -> Output Files -> Assembler Output
2) 更改为No Listing

如此编译后就不再依赖xxx.asm文件了。


下面贴两段代码

//JSON读取
	std::string strValue="{\"key1\":\"value1\",\"array\":[{\"key2\":\"value2\"},{\"key2\":\"value3\"},{\"key2\":\"value4\"}]}"; 
	Json::Reader reader;
	Json::Value value;
	
	if(reader.parse(strValue,value))
	{
		std::string out=value["key1"].asstring();
		std::cout<<out<<std::endl;
		const Json::Value arrayObj=value["array"];
        for (int i=0; i < arrayObj.size();i++)  
		{
			out=arrayObj[i]["key2"].asstring();
			std::cout<<out;
			if(i!=arrayObj.size()-1)
				std::cout<<std::endl;;
		}
	}
//JSON写入
	Json::Value root;
	Json::FastWriter writer;
	Json::Value user;
	Json::Value data;

	user["userAccount"] = "admin";
	user["password"] = "123456";
	user["username"] = "张三";
	user["idcardno"] = "460033199004062314";
	user["syscode"] = "01";
	user["sysfunid"] = "0101";

	data.append(user);
	root["data"]  = data;
	std::string json_file = writer.write(root);

	std::ofstream ofs;
	ofs.open("test1.json");
	assert(ofs.is_open());
	ofs<<json_file;

原文地址:https://www.jb51.cc/json/290220.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐