参考博客:https://blog.csdn.net/kang___xi/article/details/87890485
解析json:https://blog.csdn.net/thanklife/article/details/88011545
1.下载json源码后,打开...\jsoncpp-src-0.5.0\makefiles\vs71下的工程,编译lib_json工程,可根据项目需要,修改运行库:
项目——属性——C/C++——代码生成——MT/MTd/MD/MDd
编译对应的debug/release版本的lib文件
debug下:json_vc71_libmtd.lib
release下:json_vc71_libmt.lib
2.项目配置,进行测试
项目——属性——VC++——包含目录:...\jsoncpp-src-0.5.0\include
项目——属性——VC++——库目录:...\jsoncpp-src-0.5.0\build\vs71\debug\lib_json
或...\jsoncpp-src-0.5.0\build\vs71\release\lib_json
项目——属性——链接器——输入:
debug下:json_vc71_libmtd.lib
release下:json_vc71_libmt.lib
3.测试代码
写json文件,读json文件
#include "pch.h"
#include <iostream>
#include <fstream>
#include "json/json.h"
using namespace std;
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();
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;
}
若release下出现一下问题:
修改jsoncpp中对应release下的属性
项目--属性---配置属性---c/c++---输出文件---汇编程序输出:无列表