jsoncpp官方教程_jsoncpp用法

jsoncpp官方教程_jsoncpp用法本文主要介绍使用JsonCpp库,通过C++编程语言实现JSON文件读写操作的具体方法。1写入JSON文件这里编写一个示例程序,该程序将JSON字符串写入到JSON文件中。示例代码(json_file_oper_write.cpp)的内容如下:#include<jsoncpp/json/json.h>#include<fstream>usingnamespacestd;intmain(){Json::Value

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

本文主要介绍使用 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”文件,过程信息如下:

jsoncpp官方教程_jsoncpp用法

通过上图中的信息能够知道,上述示例程序成功地将 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;
}


编译并运行上述代码,运行结果如下:

jsoncpp官方教程_jsoncpp用法

通过上述运行结果能够看到,示例程序成功地将“test.json”文件中的 JSON 内容解析出来了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183587.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 雅虎前端优化策略

    雅虎前端优化策略Content·「网页内容相关MakeFewerHTTPRequests[减少http请求次数]ReduceDNSLookups[减少DNS查询次数]AvoidRedirects…

  • 【JAVA面试必会】JMM高并发详解(java内存模型、JMM三大特征、volatile关键字 )「建议收藏」

    【JAVA面试必会】JMM高并发详解(java内存模型、JMM三大特征、volatile关键字 )「建议收藏」volatile一定能保证线程安全吗?禁止指令重排序volatile禁止指令重排序的原理。JMM就是Java内存模型(javamemorymodel)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都能达到……………

  • Matlab矩阵复制扩充

    考虑这个问题:定义一个简单的行向量a    如何复制10行呢?即:    同理,对于一个列向量,如何复制10列呢?  关键函数1:repmat(A,m,n):将向量/矩阵在垂直方向复制m次,在水平方向复制n次。      再举一个例子,对于a=[12;34]:         垂直方向复制3次,水平方向复制2次,

  • pytest fixtures_pytest conftest.py文件

    pytest fixtures_pytest conftest.py文件fixture的优势Pytest的fixture相对于传统的xUnit的setup/teardown函数做了显著的改进:命名方式灵活,不局限于setup和teardown这几个命名conf

  • 传真服务器的定义与选购

    传真服务器的定义与选购 AOFAX热点:传真服务器的定义与选购服务信息卡:联系人:朱成军服务热线:15920885998 商务QQ:909075483.一、传真服务器和传真系统传真服务器定义:所谓传真服务器,就是为企业内部所有员工提供电脑传真收发服务的设备,能够长期脱离其他电脑独立工作,是传真服务器的必要条件。传真服务器由传真软件、传真卡、工控机等组成。传真系统:传真服务器在某些场合也

  • java正则表达 替换_java正则表达式替换

    java正则表达 替换_java正则表达式替换java正则表达式替换[@more@]//正则表达式替换–尾部为空格或者;Stringregex=”#w+((s)|(;)|()))”;Patternpattern=Pattern.compile(regex);Matchermatcher=pattern.matcher(sql);StringBuffersbf=newStringBuffer();while(matc…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号