本文主要介绍使用 JsonCpp 库,通过 C 编程语言实现 JSON 文件读写操作的具体方法。
1 写入JSON文件
这里编写一个示例程序,该程序将 JSON 字符串写入到 JSON 文件中。
示例代码(json_file_oper_write.cpp)的内容如下:
代码语言:javascript复制#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)的内容如下:
代码语言:javascript复制#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 内容解析出来了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183587.html原文链接:https://javaforall.cn