本文主要介绍使用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”文件中了。

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内容解析出来了。

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 2 个月前
8c391e04 5 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐