1 jsoncpp的安装
推荐使用vcpkg来安装jsoncpp库,它可以非常方便的将jsoncpp库集成到你的visual studio项目中。vcpkg的使用和安装参考博客:C++第三方库管理工具vcpkg使用教程
2 jsoncpp的使用
下面的例子是通过jsoncpp库来修改一个json文件的值:
#include <iostream>
#include <fstream>
#include "json/json.h"
using namespace std;
bool readJsonFile(const char* jsonFileName, Json::Value* jsonInfo)
{
ifstream jsonFile(jsonFileName, ios::binary);
if (!jsonFile.is_open())
{
printf("OPEN %s ERROR\n", jsonFileName);
return false;
}
else
{
Json::Reader reader;
if (reader.parse(jsonFile, *jsonInfo))
{
jsonFile.close();
return true;
}
else
{
printf("parse json ERROR\n");
jsonFile.close();
return false;
}
}
return true;
}
bool writeJsonFile(const char* jsonFileName, const Json::Value writeJson)
{
ofstream jsonFile(jsonFileName, ios::out);
if (!jsonFile.is_open())
{
printf("OPEN %s ERROR\n", jsonFileName);
return false;
}
else
{
Json::StyledWriter sw;
jsonFile << sw.write(writeJson);
jsonFile.close();
return true;
}
return true;
}
int main()
{
Json::Value jsonInfo;
if (readJsonFile("C:\\Users\\ferdinand\\Documents\\AirSim\\settings.json", &jsonInfo) != false)
{
cout << jsonInfo << endl;
}
/*更改json文件*/
jsonInfo["Vehicles"]["SimpleFlight"]["PawnPath"] = "DefaultQuadrotor";
writeJsonFile("C:\\Users\\ferdinand\\Documents\\AirSim\\settings.json", jsonInfo);
}