1.前言
jsoncpp 是cpp使用c++的一个第三方库,这篇博文教你成功配置Jsoncpp。
2.下载Jsoncpp
github下载地址:https://github.com/open-source-parsers/jsoncpp/releases
下载的zip文件
include文件夹里面是头文件目录,缺少了静态链接库目录,必须进行编译,生成lib文件。
3.编译lib_ json生成lib_ json.lib
打开makefiles\msvc2010\jsoncpp.sln
同时在,在这里你可以选择编译模式
右击lib_json,选择属性,在C/C++中的代码生成模块中,选择多线程调试(/MTd)
右击lib_json,选择生成。本人选择的Debug模式下的X64方式。
这时候我们在makefiles\msvc2010\x64\Debug下会生成lib_json.lib文件。
4.VS工程加入jsoncpp
VS2015里新建一个空的控制台程序,用于测试jsoncpp是否可用,名为JsonTest。
将jsoncpp-0.10.7文件下的include文件夹和刚刚生成的lib_json.lib全部拷到JsonTest工程下。
点击解决方案资源管理器的菜单栏中的显示所有文件 ,并右击include文件夹,将头文件添加到JsonTest工程中。
选择C/C++下面的常规选项中的附加包含目录,写入
…\JsonTest\include
…\JsonTest\include\json
然后在C/C++下面的生成代码中代码生成模块中,选择多线程调试(/MTd)。(保持和lib_json.lib的编译环境一致)
最后在链接器下的输入中,填入刚刚拷贝过来的lib_json.lib。
环境配置完毕。
5.测试代码
#include <iostream>
#include "json.h"
using namespace std;
int main()
{
//根节点
Json::Value root;
//根节点属性
root["name"] = Json::Value("Tsybius");
root["age"] = Json::Value(23);
root["sex_is_male"] = Json::Value(true);
//子节点
Json::Value partner;
//子节点属性
partner["partner_name"] = Json::Value("Galatea");
partner["partner_age"] = Json::Value(21);
partner["partner_sex_is_male"] = Json::Value(false);
//子节点挂到根节点上
root["partner"] = Json::Value(partner);
//数组形式
root["achievement"].append("ach1");
root["achievement"].append("ach2");
root["achievement"].append("ach3");
//直接输出
cout << "FastWriter:" << endl;
Json::FastWriter fw;
cout << fw.write(root) << endl << endl;
//缩进输出
cout << "StyledWriter:" << endl;
Json::StyledWriter sw;
cout << sw.write(root) << endl << endl;
getchar();
return 0;
}
运行结果截图:
按照上述方式就可以正常使用json库了。