一、部署JsonCpp
(1)、下载JsonCpp
0.5.0版本地址:https://sourceforge.net/projects/jsoncpp/https://sourceforge.net/projects/jsoncpp/
新版本地址:
https://github.com/open-source-parsers/jsoncpphttps://github.com/open-source-parsers/jsoncpp
(2)、JsonCpp库结构
需要用到文件有include、makefiles文件夹
(3)、编译JsonCpp库
打开makefiles->vs71->jsoncpp.sln
新版本VS打开需要更新一下编译器版本,点击确定即可,Backup存储之前的sln
可以自行选择生成lib、dll,右键选择项目->属性,右键项目->编译开始生成库文件
生成完成后在jsoncpp的根目录结构就会有build目录,build->vs71>debug of release版本->lib_json,将生成json_vc71_libmt.lib、json_vc71_libmtd.lib,带d是debug
将jsoncpp的include和刚刚生成的两个lib,另外建一个文件保存,lib放在bin或者取名lib,这个自行决定,到这里jsoncpp就算编译完成了
二、导入VS2022
(1)、新建项目
根据自身需求选择项目
(2)、引入第三库JsonCpp
右键解决方案->属性,要注意的一点就是生成的JsonCpp库文件的位数要与自身项目的位数统一,32位、64位
链接器->输入->附加依赖项
想要了解lib、dll区别可以参考以下文章
三、JsonCpp解析文件
(1)、主要文件
主要用到几个文件
(2)、VS使用
实际使用引入json/json.h就可以了
(3)、读取文件
这里使用的JsonCpp0.5.0版本,跟最新版本的方法不一样
#include <json/json.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
Json::Value root;
Json::Reader reader;
ifstream file("request.json",ios::binary);
if (!file.is_open()) {
std::cerr << "Failed to open file!" << std::endl;
return 1;
}
// 解析 JSON 文件
if (!reader.parse(file,root)) {
std::cerr << "Failed to parse JSON: " << reader.getFormatedErrorMessages() << std::endl;
return 1;
}
// 访问 JSON 数据
std::cout << root << std::endl;
file.close(); // 关闭文件
return 0;
}
到此为止就可以进行Json文件的解析
具体JsonCpp使用方式,后面会介绍,这里也推荐一篇文章进行参考