网站链接: element-ui dtcms
当前位置: 首页 > 技术博文  > 技术博文

VS2017 配置JSON

2021/6/27 7:52:22 人评论

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 MSB803…

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)

相关资讯

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?