使用jsoncpp库可高效读写JSON文件。首先通过包管理器或源码安装jsoncpp,再在C++项目中包含头文件并链接库。读取时用Json::CharReaderBuilder解析文件内容到Json::Value对象,写入时用Json::StreamWriterBuilder将Json::Value写入文件。支持字符串、数值、布尔、数组、对象等类型操作,需检查文件打开与解析是否成功,确保程序健壮性。

在C++中读写JSON文件,使用jsoncpp库是一个简单高效的选择。jsoncpp提供清晰的API来解析、生成和操作JSON数据,适合嵌入到项目中处理配置文件、网络通信数据等场景。
安装与集成jsoncpp库
在使用前需要将jsoncpp集成到你的C++项目中:
- Ubuntu/Debian系统可通过包管理器安装:
sudo apt install libjsoncpp-dev - 手动编译:从GitHub下载源码(https://github.com/open-source-parsers/jsoncpp),使用cmake构建并安装
- CMake项目中可使用find_package(JsonCpp REQUIRED)自动链接
- 或者直接将jsoncpp的头文件和静态库加入项目目录,手动指定include路径和链接库
读取JSON文件
使用Json::Value和Json::Reader(新版推荐使用Json::CharReader)解析JSON文件内容:
#include <json/json.h>
#include <fstream>
#include <iostream>
bool readJsonFile(const std::string& filename, Json::Value& root) {
std::ifstream ifs(filename);
if (!ifs.is_open()) {
std::cerr << "无法打开文件: " << filename << std::endl;
return false;
}
Json::CharReaderBuilder builder;
std::string errs;
if (!parseFromStream(builder, ifs, &root, &errs)) {
std::cerr << "解析失败: " << errs << std::endl;
return false;
}
return true;
}
// 使用示例
int main() {
Json::Value config;
if (readJsonFile("config.json", config)) {
std::cout << "姓名: " << config["name"].asString() << std::endl;
std::cout << "年龄: " << config["age"].asInt() << std::endl;
// 遍历数组
const Json::Value items = config["items"];
for (const auto& item : items) {
std::cout << "物品: " << item.asString() << std::endl;
}
}
return 0;
}
登录后复制
写入JSON文件
使用Json::Value构建数据结构,并通过Json::StreamWriter写入文件:
标签: js git json github app ubuntu 苹果 ai c++ ios stream 配置文件 键值对
还木有评论哦,快来抢沙发吧~