作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试学习如何使用 JSON 和 Qt 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显示如何加载文档
QFile
QFile
转换为 QString
QString
转换为 QByteArray
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/
我是一名优秀的程序员,十分优秀!