使用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”文件中了。
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/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内容解析出来了。
推荐内容
阅读全文
AI总结




适用于现代 C++ 的 JSON。
最近提交(Master分支:6 个月前 )
4424a0fc
Signed-off-by: Niels Lohmann <mail@nlohmann.me> 3 天前
11aa5f94
* Make std::filesystem::path conversion to/from UTF-8 encoded JSON string explicit.
Signed-off-by: Richard Musil <risa2000x@gmail.com>
* Experimental: Changing C++ standard detection logic to accommodate potential corner cases.
Signed-off-by: Richard Musil <risa2000x@gmail.com>
* Drop C++ standard tests for compilers which do not implement required features.
Signed-off-by: Richard Musil <risa2000x@gmail.com>
* Drop C++ standard tests for MSVC versions which do not implement required features.
Signed-off-by: Richard Musil <risa2000x@gmail.com>
---------
Signed-off-by: Richard Musil <risa2000x@gmail.com>
Co-authored-by: Richard Musil <risa2000x@gmail.com> 4 天前
更多推荐
相关推荐
查看更多
json

适用于现代 C++ 的 JSON。
json

An efficient JSON decoder
json

pretty-printed JSON response middleware
热门开源项目
活动日历
查看更多
直播时间 2025-04-07 14:51:20

樱花限定季|G-Star校园行&华中农业大学专场
直播时间 2025-03-26 14:30:09

开源工业物联实战!
直播时间 2025-03-25 14:30:17

Heygem.ai数字人超4000颗星火燎原!
直播时间 2025-03-13 18:32:35

全栈自研企业级AI平台:Java核心技术×私有化部署实战
直播时间 2025-03-11 18:35:18

从0到1:Go IoT 开发平台的架构演进与生态蓝图
所有评论(0)