使用C++实现Json文件的读写操作实例(含代码)

在C++中,处理JSON文件通常需要使用第三方库,因为C++标准库本身并不直接支持JSON格式。一个非常流行的C++ JSON库是 nlohmann/json。它易于使用,文档齐全,并且功能强大。

下面是一个简单的示例,展示如何使用nlohmann/json库来读取和写入JSON文件。

安装nlohmann/json库

你可以通过以下几种方式来安装nlohmann/json库:

  1. 使用包管理工具:

    • vcpkg:

      vcpkg install nlohmann-json
      
    • conan:

      conan install nlohmann_json/3.11.2@
      
  2. 从GitHub直接下载
    你可以直接从 nlohmann/json GitHub页面下载源代码,并将其添加到你的项目中。通常,库的单个头文件 json.hpp 可以直接包含在项目中。

    也可以直接在该链接 免费下载C++ json库

示例代码

以下是一个示例代码,演示如何使用nlohmann/json库来读取和写入JSON文件。

  1. 包含头文件

    #include <iostream>
    #include <fstream>
    #include <nlohmann/json.hpp>
    
    using json = nlohmann::json;
    
  2. 写入JSON文件

    void write_json(const std::string& filename) {
        // 创建一个 JSON 对象
        json j;
        j["name"] = "John Doe";
        j["age"] = 30;
        j["is_student"] = false;
        j["courses"] = {"Math", "Science", "Literature"};
    
        // 打开文件并写入 JSON 数据
        std::ofstream file(filename);
        if (file.is_open()) {
            file << j.dump(4); // 4 是缩进级别
            file.close();
            std::cout << "JSON 数据已写入文件 " << filename << std::endl;
        } else {
            std::cerr << "无法打开文件 " << filename << std::endl;
        }
    }
    
  3. 读取JSON文件

    void read_json(const std::string& filename) {
        // 打开文件并读取 JSON 数据
        std::ifstream file(filename);
        if (file.is_open()) {
            json j;
            file >> j;
    
            // 打印 JSON 数据
            std::cout << "读取的 JSON 数据:" << std::endl;
            std::cout << j.dump(4) << std::endl; // 4 是缩进级别
    
            // 访问 JSON 数据中的字段
            std::string name = j["name"];
            int age = j["age"];
            bool is_student = j["is_student"];
            std::vector<std::string> courses = j["courses"].get<std::vector<std::string>>();
    
            std::cout << "Name: " << name << std::endl;
            std::cout << "Age: " << age << std::endl;
            std::cout << "Is Student: " << is_student << std::endl;
            std::cout << "Courses: ";
            for (const auto& course : courses) {
                std::cout << course << " ";
            }
            std::cout << std::endl;
    
            file.close();
        } else {
            std::cerr << "无法打开文件 " << filename << std::endl;
        }
    }
    
  4. 主函数

    int main() {
        const std::string filename = "example.json";
    
        // 写入 JSON 文件
        write_json(filename);
    
        // 读取 JSON 文件
        read_json(filename);
    
        return 0;
    }
    

编译和运行

假设你将上述代码保存为 main.cpp,并且你已经安装了nlohmann/json库,编译和运行程序的步骤如下:

  1. 编译

    g++ -std=c++11 -o json_example main.cpp
    
  2. 运行

    ./json_example
    

这个程序将创建一个 example.json 文件,写入一些数据,然后读取这个文件并打印出数据。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值