VS2015配置jsoncpp详解

首先下载一个jsoncpp,然后解压,用vs2015编译。

在jsoncpp-src-0.5.0->makefiles->vs71文件夹下找到jsoncpp.sln文件,打开,有三个工程,对其中lib_json这个工程进行编译生成(可以生成两种库,debug库和release库,二者不同,工程debug的时候需要debug库,release时需要release库)。生成成功后会在jsoncpp-src-0.5.0->build->vs71->debug->lib_json文件夹下得到json_vc71_libmtd.lib文件

编译之后为编译文件

然后打开Vs2015创建一个空的C++项目

VS2015配置jsoncpp详解_第1张图片

VS2015配置jsoncpp详解_第2张图片

右键工程名,选择在文件资源管理器中打开。

VS2015配置jsoncpp详解_第3张图片

然后创建文件夹include,和lib

VS2015配置jsoncpp详解_第4张图片

 

把jsoncpp-src-0.5.0\include里边内容复制到include文件夹中,把jsoncpp-src-0.5.0\build\vs71\debug\lib_json\json_vc71_libmtd.lib复制到lib文件夹中。

VS2015配置jsoncpp详解_第5张图片

返回VS,在解决方案资源管理器里选择

VS2015配置jsoncpp详解_第6张图片

这个,即可显示刚才创建,但是没有加入到项目里的文件 夹include,lib。VS2015 在项目中创建文件夹就是此方法,

显示值后为

VS2015配置jsoncpp详解_第7张图片

右键这两个文件夹,选择包括在项目中。

VS2015配置jsoncpp详解_第8张图片

然后配置一个工程属性,右键工程名,打开属性。

在工程属性页中添加include文件夹,以及引入lib文件

注:如果此时项目属性页没显示C/C++此时在源文件中新建一个main.cpp 不用写代码 ,创建即可。

VS2015配置jsoncpp详解_第9张图片

 

选择项目里的include文件夹

VS2015配置jsoncpp详解_第10张图片

应用。

然后添加附加库目录。

链接器常规附加库目录,选择lib文件夹。

VS2015配置jsoncpp详解_第11张图片

最后添加lib文件

链接器输入附加依赖项,把lib文件名输入进去。

 VS2015配置jsoncpp详解_第12张图片

然后编写代码:

#include 
#include 
#include "json/json.h"
using namespace std;

int main()
{
	///
	/                                 json Value的新建及key的访问                  ///
	///

	cout << "json Value的新建及key的访问" << endl;

	// 新建Json::Value对象
	Json::Value value1;

	// 给字段赋值,key必须为string型
	// 类似STL的map,访问一个不存在的字段时会自动新建一个字段	
	value1["name"] = "英语";				// string型

	Json::Value value2;
	value2["name"] = "语文";		// string型
	value2["score"] = 80;			// 整型
	value2["right"] = true;			// bool型
	value2["percent"] = 12.34567890;	// double型
	value2["count"];					// 单纯的访问一个key,由于该key不存在,所以会新建,值的类型为Json::nullValue

										// 新建Value对象
	Json::Value valueArr;
	valueArr["name"] = "json array";	// string型
	valueArr["object"] = value1;		// json::Value型
	valueArr["array"].append("array_element_one");	// 访问key为"array",该key不存在,会新建,类型为Json::arrayValue,数组型,且把第一个元素赋值为string型"array element one"
	valueArr["array"].append("array_element_two");	// 该key已存在,往后面增加元素,赋值为string型"array element two"
	valueArr["array"].append(33333);				// 该key已存在,往后面增加元素,赋值为整型33333
	valueArr["array"].append(value2);				// 该key已存在,往后面增加元素,赋值为json::Value型

													// 计算其中字段的个数
	cout << "size = " << valueArr.size() << endl;

	// key的访问

	// 访问字段"object"的值,访问一个key前,先预判是否有该key
	if (valueArr.isMember("object"))
	{
		// 存在的话,再判断其value的类型是否是自己预期的,根据前面32行赋值代码可知:"object"的值是Json::Value类型
		if (valueArr["object"].isObject())
		{
			// 转换成对应的类型
			Json::Value object = valueArr["object"];

			// 字段检测,取值,可以放在一行中,谨记:先检测是否存在,后判断类型
			if (object.isMember("name") && object["name"].isString())
			{
				string name = object["name"].asString();
				cout << "valueArr[object] key = name, value = " << name.c_str() << endl;
			}
		}
	}

	// 访问字段"array"的值
	if (valueArr.isMember("array") && valueArr["array"].isArray()) // 根据前面33行赋值代码可知:"object"的值是Json::arrayValue类型的
	{
		// 注意:虽然类型为Json::arrayValue,也是转换为Json::Value类型的
		Json::Value arrayObject = valueArr["array"];

		// 得到其元素个数
		int array_size = arrayObject.size();

		// 根据类型,逐个输出元素
		for (int i = 0; i

ctrl+f5运行,显示结果为:

VS2015配置jsoncpp详解_第13张图片

此结果表示

添加的第三方库编译时的运行库配置与使用此第三方库的项目的运行库配置不一致引起的。

即,第三方库编译是的运行库选项是“MTd_StaticDebug”,而当前项目中的值为“MDd_DynamicDebug”,因此解决问题的方法是修改当前项目的运行时配置。

右键项目,属性C/C++代码生成选择运行库改为多爱你城调试(/MTd)即可。

VS2015配置jsoncpp详解_第14张图片

应用,确定。Ctrl+f5运行,

VS2015配置jsoncpp详解_第15张图片

运行无误,完毕!

你可能感兴趣的:(C++,游戏开发)