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

jsoncpp编译并添加到vs2015工程

声明:

当前网上有很多json相关的开源库,接触网络方面的技术大牛们对json这个网络数据格式也并不陌生,鄙人个人比较喜欢用jsoncpp这个库,所以这里请各位大牛们多多指导。


注意:

如果vs编译器版本小于vs2010版本编译时会提示找不到stdint.h头文件当前不要慌,如果你电脑安装了vs2010以上的版本找到对应的Microsoft Visual Studio X\VC\include目录下去把这个头文件copy到Microsoft Visual Studio X(小于vs20101版本)\VC\include目录下。

步骤:

一、jsoncpp lib生成

1、下载jsoncpp库方式有两种:

1.1 可以使用git clone这个命令克隆 https://github.com/open-source-parsers/jsoncpp.git完整包。

1.2 可以下载鄙人上传到csdn资源库中的源码http://download.csdn.net/download/wu110112/9817317


2、无论下载鄙人的百度网盘还是克隆git上面的源码请按照如下步骤操作

2.1 找到(个人保存的路径)\jsoncpp-master\jsoncpp-master\makefiles\msvc2010文件

2.2 用vs打开jsoncpp.sln或lib_json.vcxproj

2.3 修改debug版本的工程属性,把目标文件名后面添加一个_d表示debug版本

2.4 编译lib_json生成debug和release两个版本lib文件


二、vs工程加入jsoncpp相关的步骤

1、在vs工程目录下新建一个jsoncpp文件夹,然后在当前目录下分别创建include和lib文件

2、把jsoncpp中的头文件copy到incude文件夹中

3、把jsoncpp中生成的debug和release版本的lib都copy到lib文件夹中

4、在自己的vs工程中添加json的lib库和头文件如图:


按照如上方式步骤添加当前就可以正常使用json库了。


鄙人写的测试jsoncpp的demo


demo对应解析json数据代码如下:

void Cjsoncpp_testDlg::OnBnClickedOk()
{
	string json = "{\"data\":[{\"cateId\":\"638300000000000002\",\"name\":\"炒菜\",\"rank\":1},\
	{\"cateId\":\"638300000000000003\",\"name\":\"汤\",\"rank\":2}],\"code\":200,\"msg\":\"\"}";
	
	Json::Reader reader;
	Json::Value root;
	if (!reader.parse(json.c_str(),root))
	{
		AfxMessageBox(TEXT("json error!"));
	}
	if ( root.isObject() )
	{
		Json::Int size = root["data"].size();
		if ( size != 0)
		{
			Json::Int i = 0; 
			string jsondata;
			for (; i<size; i++)
			{
				if (!root["data"][i]["cateId1"].isNull())
				{
					string cateid = root["data"][i]["cateId"].asCString();
					string name = root["data"][i]["name"].asCString();
				}
				if ( !root["data"][i]["cateId"].isNull() )
				{
					string cateid = root["data"][i]["cateId"].asCString();
					string name = root["data"][i]["name"].asCString();
					
					jsondata.append(cateid);
					jsondata.append(",");
					jsondata.append(name);
				}
			}
		}
	}
	CDialogEx::OnOK();
}

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

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

相关推荐