Qt 5读取、解析、生成和保存JSON文件

项目中用到了一些JSON的东西,为了方便就做了一层简单的封装方便以后使用,包括了JSON的读取、解析、生成和保存这些基本功能
json.h文件

#ifndef JSON_H
#define JSON_H

#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonParseError>

class JSON {
   
public:
    JSON();

    QJsonObject getJson();
    QJsonObject loadJson(const QString& filepath);
    void writeJson(const QString key, bool value);
    void writeJson(const QString key, int value);
    void writeJson(const QString key, double value);
    void writeJson(const QString key, QString value);
    void writeJson(const QString key, bool* array, int length);
    void writeJson(const QString key, int* array, int length);
    void writeJson(const QString key, double* array, int length);
    void writeJson(const QString key, QJsonObject object);
    bool saveJson(const QString& filepath);
    QString toString();

private:
    QJsonObject json;
};

#endif // JSON_H

json.cpp文件

#include <QDebug>
#include <QFile>
#include <QIODevice>

#include "json.h"

JSON::JSON()
{
   
}

QJsonObject JSON::getJson()
{
   
    return json;
}

QJsonObject JSON::loadJson(const QString& filepath)
{
   
    QFile loadFile(filepath);

    if 
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
款已经超过额度,请尽快还款。 | 垃圾 | | 你好,您的快递已经在Qt读取解析JSON文件可以使用Qt自带的QJsonDocument类和QJsonObject类。下面是一个到达,请尽快领取。 | 正常 | | 您好,恭喜您获得iPhone手机一台,请点击简单的例子: ```c++ // 读取JSON文件 QString jsonFilePath = "path/to/json/file.json"; QFile链接领取。 | 垃圾 | | 你好,我们公司正在招聘前端设计师,请尽快申请。 jsonFile(jsonFilePath); if (!jsonFile.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Failed to open | 正常 | | 你好,我们公司正在招聘后端设计师,请尽快申请。 | 正常 JSON file:" << jsonFilePath; return; } // 解析JSON文本 QJsonParseError parseError; QJsonDocument json | | 你好,我们公司正在招聘UI设计师,请尽快申请。 | 正常 | | 您好,Doc = QJsonDocument::fromJson(jsonFile.readAll(), &parseError); if (parseError.error != QJsonParseError::NoError) { qDebug() << "Failed to parse JSON file:" << parseError.errorString(); return; } // 获取JSON对象 Q您的信用卡已经欠款10万元,请尽快还款。 | 垃圾 | | 你好,您的JsonObject jsonObj = jsonDoc.object(); // 获取JSON中的数据 QString name = jsonObj["name"].toString(); int age = jsonObj["age快递已经到达,请查收。 | 正常 | | 您好,恭喜您获得iPhone手机一台,请"].toInt(); bool married = jsonObj["married"].toBool(); ``` 在这个例子中,我们首先打开JSON文件回电确认。 | 垃圾 | | 你好,我们公司正在招聘大数据设计师,请尽快申请。,然后使用`QJsonDocument::fromJson()`函数将JSON文本解析为`QJsonDocument`对象。如果解析 | 正常 | | 你好,我们公司正在招聘人工智能设计师,请尽快申请。 |失败,我们可以使用`QJsonParseError`类获取错误信息。 接着,我们可以使用`QJsonDocument::object()`函数获取JSON对象,并使用`[]`运算符获取其中的数据。需要注意的是,如果JSON中的数据类型与 正常 | | 你好,我们公司正在招聘机器学习设计师,请尽快申请。 | 正常我们获取的类型不匹配,会发生运行时错误。因此,在实际应用中,我们应该先 | | 您好,您的信用卡欠款已经超过额度,请尽快还款。 | 垃圾 | 检查JSON数据的类型再进行转换。 希望这个例子能够帮助你理解如何在Qt读取解析JSON文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值