VS2017 配置JSON

1 下载jsoncpp

jsoncpp下载链接:http://sourceforge.net/projects/jsoncpp/

1.1 解压如图

在这里插入图片描述

1.2 进入…\jsoncpp-src-0.5.0\makefiles\vs71

执行jsoncpp.sln,进行编译,会区分Debug/Release以及x86/x64模式。

编译过程中常见问题:error MSB8036: 找不到 Windows SDK 版本8.1
解决方法:进入控制面板,依次进入:程序->程序和功能->在卸载或更改程序中找到visual studio 2017->右键->更改
单击更改后会出现以下界面
在这里插入图片描述
勾选"Windows8.1 SDK和UCRT SDK",然后点击“修改”,即可下载安装SDK8.1更改SDK版本。
使用VS打开jsoncpp项目,然后点击菜单栏中“项目” -> “重定解决方案目标” ,即出现如下界面,选择8.1版本,点击确定:
在这里插入图片描述
重新编译: “生成” -> “生成解决方案”,编译成功,在目录“jsoncpp-src-0.5.0\build\vs71\debug\lib_json”生成静态库文件json_vc71_libmtd.lib
测试使用

2 测试

在使用时,需要把json_vc71_libmtd.lib文件放到当前项目目录下,同时将jsoncpp的include文件夹也拷贝到当前项目目录下,如下图:
在这里插入图片描述

2.1写json文件

#include <fstream>
#include "include/json/json.h"
using namespace std;
#pragma comment(lib, "json_vc71_libmtd.lib")
int main()
{
	Json::Value root;
	root["occupatio"] = "paladin";
	root["camp"] = "alliance";
	root["role_id"] = 1;
 
	Json::StyledWriter writer;
	ofstream os;
	os.open("test.json");
	os << writer.write(root);
	os.close();
 
	return 0;
}

2.2 从json文件读

#include <fstream>
#include <iostream>
#include <string>
#include "include/json/json.h"
using namespace std;
 
#pragma comment(lib, "json_vc71_libmtd.lib")
 
int main()
{
	ifstream is("test.json", ios::binary);
	if (!is.is_open())
	{
		cout << "open json file failed" << endl;
		return -1;
	}
 
	Json::Reader reader;
	Json::Value root;
	int nRole = 0;
	string strOccupation;
	string strCamp;
 
	if (reader.parse(is, root))
	{
		nRole = root["role_id"].asInt();
		strOccupation = root["occupatio"].asString();
		strCamp = root["camp"].asString();
	}
	is.close();
 
	cout << "role_id is: " << nRole << endl;
	cout << "occupation is: " << strOccupation << endl;
	cout << "camp is:" << strCamp << endl;
	
	system("pause");
	return 0;
}

提示

调试是会出现error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“MTd_StaticDebug”类似的错误,解决方法是:
项目属性 -> 配置属性 -> C/C++ -> 代码生成 -> 运行库–>多线程调试(/MTd)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忘·月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值