使用JsonCpp实现JSON文件读写操作的方法
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
本文主要介绍使用JsonCpp库,通过C++编程语言实现JSON文件读写操作的具体方法。
1 写入JSON文件
这里展示一个示例程序,该程序将JSON字符串写入到JSON文件中。
示例代码(json_file_oper_write.cpp)的内容如下:
#include <jsoncpp/json/json.h>
#include <fstream>
using namespace std;
int main()
{
Json::Value root;
// 组装json内容
root["occupation"] = "paladin";
root["camp"] = "alliance";
root["role_id"] = 1;
// 将json内容(缩进格式)输出到文件
Json::StyledWriter writer;
ofstream os;
os.open("test.json");
os << writer.write(root);
os.close();
return 0;
}
编译并执行上述代码,可以在当前目录下看到创建的“test.json”文件,过程信息如下:
通过上图内容可知,上述示例程序成功地将JSON字符串写入到“test.json”文件中了。
2 读取JSON文件
此处展示一个示例程序,该程序会读取前面创建的“test.json”文件,并将该文件中的JSON内容解析出来。
示例代码(json_file_oper_read.cpp)的内容如下:
#include <jsoncpp/json/json.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
// 以二进制形式读取json文件内容
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;
// 解析json内容
if (reader.parse(is, root))
{
nRole = root["role_id"].asInt();
strOccupation = root["occupation"].asString();
strCamp = root["camp"].asString();
}
is.close();
cout << "role_id is: " << nRole << endl;
cout << "occupation is: " << strOccupation << endl;
cout << "camp is: " << strCamp << endl;
return 0;
}
编译并运行上述代码,运行结果如下:
通过上述运行结果可知,示例程序成功地将“test.json”文件中的JSON内容解析出来了。
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
2 个月前
8c391e04
5 个月前
更多推荐
已为社区贡献19条内容
所有评论(0)