gpt4 book ai didi

c++ - 如何将 QJsonDocument 保存和加载到文件中?

转载 作者:可可西里 更新时间:2023-11-01 18:40:24 25 4
gpt4 key购买 nike

我正在尝试学习如何使用 JSONQt JSON 类。例如,我想创建一个简单的 QJsonDocument,将其保存到文件中,将其加载到不同的 QJsonDocument 中并比较结果。

我设法创建了一个QJsonDocument。然而,QJsonDocument 中没有简单的命令 interface将其保存到文件中。从文件加载文档也是如此。

#include <QJsonObject>
#include <QJsonDocument>
#include <QVariant>

int main()
{
QVariantMap map;
map.insert("integer", 1);
map.insert("double", 2.34);
map.insert("bool", QVariant(true));
map.insert("string", "word");
QJsonObject object = QJsonObject::fromVariantMap(map);

QJsonDocument document;
document.setObject(object);

// ?? save document to file
// ?? load file to document

return 0;
}

This answer显示如何加载文档

  1. 读取到QFile
  2. QFile 转换为 QString
  3. QString 转换为 QByteArray
  4. QByteArray构造QJsonDocument

有没有更直接的方法来做到这一点?

最佳答案

就我个人而言,我认为 [您链接到的] 代码看起来有点乱。警告:头部编译代码如下。

QJsonDocument loadJson(QString fileName) {
QFile jsonFile(fileName);
jsonFile.open(QFile::ReadOnly);
return QJsonDocument().fromJson(jsonFile.readAll());
}

void saveJson(QJsonDocument document, QString fileName) {
QFile jsonFile(fileName);
jsonFile.open(QFile::WriteOnly);
jsonFile.write(document.toJson());
}

这可能并不完美:它假定使用 QFile 而不是 QIODevice,但是如果您只处理本地文件,则可能无关紧要。然后,您可以使用这些函数,而不是每次需要加载/保存 Json 时都重复 Json 加载/保存代码。

关于c++ - 如何将 QJsonDocument 保存和加载到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21260075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com