QT开发中文网

Qt5 修改json文件的节点,不存在则创建

可以使用QJsonDocument和QJsonObject来修改json文件的节点。如果节点不存在,则可以创建一个新的节点。

以下是一个示例代码:

#include <QFile>
#include <QDebug>
#include <QJsonDocument>
#include <QJsonObject>

void updateJsonFile(QString filePath, QString nodeName, QString nodeValue)
{
    QFile file(filePath);
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        qDebug() << "Failed to open file:" << filePath;
        return;
    }

    QByteArray data = file.readAll();
    file.close();

    QJsonParseError error;
    QJsonDocument doc = QJsonDocument::fromJson(data, &error);
    if (error.error != QJsonParseError::NoError) {
        qDebug() << "Failed to parse json:" << error.errorString();
        return;
    }

    QJsonObject obj = doc.object();
    obj[nodeName] = nodeValue;

    doc.setObject(obj);

    if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
        qDebug() << "Failed to write to file:" << filePath;
        return;
    }

    file.write(doc.toJson());
}

该函数接受三个参数:filePath(文件路径),nodeName(要更新/创建的节点名称)和nodeValue(要设置的节点值)。它首先打开指定路径的文件并读取所有数据,然后将其解析为JSON文档。接下来,它使用QJsonObject类中的[]运算符来更新或创建指定的节点,并将其重新设置为JSON文档对象。最后,它再次打开文件以写入更新后的数据。

在使用该函数之前,请确保文件已存在且格式正确。此外,请注意,该函数会覆盖整个文件的内容。如果只想更新特定部分,请先使用其他方法读取和修改JSON数据。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=2438

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?