加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

jsoncpp编译并添加到vs2015工程

发布时间:2020-12-16 18:48:05 所属栏目:百科 来源:网络整理
导读:声明: 当前网上有很多json相关的开源库,接触网络方面的技术大牛们对json这个网络数据格式也并不陌生,鄙人个人比较喜欢用jsoncpp这个库,所以这里请各位大牛们多多指导。 注意: 如果vs编译器版本小于vs2010版本编译时会提示找不到stdint.h头文件当前不要

声明:

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


注意:

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

步骤:

一、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-masterjsoncpp-mastermakefilesmsvc2010文件夹

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();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读