当前位置: 首页 > news >正文

使用nlohmann/json.hpp实现json文件读写

1、json结构体定义

#include "nlohmann/json.hpp"struct CommonParam {int imageQuality = 80;float imagePixelRatio = 2.0;NLOHMANN_DEFINE_TYPE_INTRUSIVE(CommonParam,imageQuality, imagePixelRatio)
};struct SpComposParam {int sequenceQuality = 80;float maxFrameRate = 24.0;NLOHMANN_DEFINE_TYPE_INTRUSIVE(SpComposParam, sequenceQuality,maxFrameRate)
};struct ConfigParam {CommonParam commonParam;SpComposParam spComposParam;bool enable = false;NLOHMANN_DEFINE_TYPE_INTRUSIVE(ConfigParam, commonParam, spComposParam, enable)
};

2、json文件读写函数

bool getConfigParam(ConfigParam& param) {try {// 打开文件并读取 JSON 数据std::ifstream file(configFileSavePath);if (!file.is_open()) {std::cerr << "Failed to open file for reading: " << configFileSavePath << std::endl;return false;}nlohmann::json j;file >> j;file.close();configParam = j.get<ConfigParam>();param = configParam;return true;} catch (const std::exception& e) {std::cerr << "Error reading JSON from file: " << e.what() << std::endl;return false;}
}bool setConfigParam(const ConfigParam& param) {try {configParam = param;nlohmann::json j = configParam;std::ofstream file(configFileSavePath);if (!file.is_open()) {std::cerr << "Failed to open file for writing: " << configFileSavePath << std::endl;return false;}file << std::setw(4) << j << std::endl;file.close();return true;} catch (const std::exception& e) {std::cerr << "Error writing JSON to file: " << e.what() << std::endl;return false;}
}

http://www.lryc.cn/news/578363.html

相关文章:

  • SpringBoot全局异常详解
  • 【实时Linux实战系列】实时数据库与数据存储方案
  • 学习threejs,使用自定义GLSL 着色器,生成艺术作品
  • 使用Rust原生实现小波卡尔曼滤波算法
  • 408第三季part1 - 操作系统 - 基本分页
  • 算法赋能管理:工厂安全与效率双突破
  • 【仿muduo库实现并发服务器】Channel模块
  • 回转体航行器控制系统中深度控制与俯仰姿态控制的解耦策略
  • 基于springboot的养老院管理系统
  • C# Linq to XML 详解:强大的XML处理工具
  • (自用)Java学习-5.21(支付宝沙箱支付、Vue总结)
  • 插入排序解析
  • sqlmap学习笔记ing(1.Easy_SQLi(时间,表单注入))
  • Django打造智能Web机器人控制平台
  • HarmonyOS应用开发高级认证知识点梳理 (一) 布局与样式
  • 记本好书:矩阵力量:线性代数全彩图解+微课+Python编程
  • 深蓝海域承建某大型保险集团产险知识库升级项目
  • 主流零信任安全产品深度介绍
  • 11OAuth2
  • 从零到一搭建远程图像生成系统:Stable Diffusion 3.5+内网穿透技术深度实战
  • 【深度学习1】ModernBert学习
  • 发布/订阅模式:解耦系统的强大设计模式
  • Spring Boot 集成 Dufs 通过 WebDAV 实现文件管理
  • 从零到一:VNC+内网穿透技术搭建企业级远程控制系统的完整路径
  • ubuntu系统安装docker 和 mongdb,YaPi(包含中间过程不能拉去依赖问题)
  • langchain从入门到精通(三十二)——RAG优化策略(八)自查询检索器实现动态数据过滤
  • 自由学习记录(66)
  • 聚观早报 | 知乎直答新升级;特斯拉V4超级充电桩首批上线;苹果将推出廉价版Macbook
  • 缓存系统-淘汰策略
  • 边缘人工智能与医疗AI融合发展路径:技术融合与应用前景(下)