You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C++解析读写JSON文件及同类结构化存储方案

C++ 结构化文件读写及凭据存储落地方案

JSON 读写通用实现

C++ 标准库未内置JSON处理模块,工业界通用做法是引入成熟第三方库,优先选无编译依赖的单头文件实现,操作逻辑和C# 生态的JSON库高度对齐,学习成本极低:

  • 日常开发首选 nlohmann/json:仅需将对应单头文件加入项目包含目录即可使用,支持STL容器自动序列化/反序列化,API设计贴合现代C++使用习惯,完全满足配置、凭据类小体量JSON的读写需求。
    对应登录凭据读写的示例代码如下:
    #include <nlohmann/json.hpp>
    #include <fstream>
    #include <ctime>
    using json = nlohmann::json;
    
    // 写入加密后的登录凭据
    void write_login_cred(const std::string& username, const std::string& encrypted_passwd) {
        json cred_config;
        cred_config["username"] = username;
        cred_config["encrypted_passwd"] = encrypted_passwd;
        cred_config["last_login_ts"] = std::time(nullptr);
    
        std::ofstream out_stream("./user_cred.json");
        out_stream << cred_config.dump(4); // dump参数为缩进空格数,传入4即可输出格式化的可读JSON
        out_stream.close();
    }
    
    // 读取本地存储的凭据
    bool read_login_cred(std::string& username, std::string& encrypted_passwd) {
        std::ifstream in_stream("./user_cred.json");
        if (!in_stream.is_open()) return false;
    
        json cred_config;
        in_stream >> cred_config;
        username = cred_config["username"].get<std::string>();
        encrypted_passwd = cred_config["encrypted_passwd"].get<std::string>();
        in_stream.close();
        return true;
    }
    
  • 如果需要处理GB级超大JSON文件、追求极致解析性能,可以替换为RapidJSON,缺点是API相对繁琐,凭据存储、配置读写这类轻量场景不需要使用。

其他易用结构化存储方案

如果不想引入JSON依赖,或者需要更适配凭据存储场景的方案,可以选择以下几类逻辑和C# 常用类库对齐、接入成本极低的方案:

  • INI格式:最轻量化的分节键值对格式,结构简单、人工可读性强,非常适合存储单组账号凭据这类简单结构化数据。接入单头文件的inih库即可实现读写,代码量比JSON更少,文件体积也更小。
  • SQLite单文件数据库:如果后续需要支持多账号存储、登录历史记录等复杂查询需求,SQLite是最优选择——整个数据库就是单个独立文件,不需要部署额外服务,支持标准SQL语句查询,接入时仅需引入sqlite3头文件和对应静态库即可,数据层面支持文件加密,安全性比纯文本结构化文件更高,操作逻辑和C# 操作SQLite的流程完全一致。
  • TOML格式:专门为配置存储设计的结构化格式,语法比JSON更简洁,原生支持注释、多行字符串,没有JSON多余的括号、尾逗号语法问题,接入toml11这类单头文件库即可使用,操作逻辑和JSON几乎一致,编写人工维护的配置项时比JSON更顺手。

注意:存储加密登录凭据这类敏感数据时,无论使用哪种存储格式,都需要将文件权限设置为当前用户仅可读可写,避免存到系统公共目录被其他进程非法读取。

内容的提问来源于stack exchange,提问作者NilsO24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 15:21:20