qt 将结构体保存为json
时间: 2023-09-01 22:04:42 浏览: 267
在Qt中,可通过QJsonDocument和QJsonObject来将结构体保存为JSON格式。首先,我们需要将结构体的数据转换为QJsonObject对象,然后再将QJsonObject对象转换为QJsonDocument对象并进行保存。
下面是一个示例代码:
```cpp
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QDebug>
// 定义一个结构体
struct Person {
QString name;
int age;
};
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建一个Person结构体对象
Person person;
person.name = "张三";
person.age = 25;
// 将结构体数据转换为QJsonObject对象
QJsonObject jsonObj;
jsonObj["name"] = person.name;
jsonObj["age"] = person.age;
// 将QJsonObject对象转换为QJsonDocument对象
QJsonDocument jsonDoc(jsonObj);
// 将QJsonDocument对象保存为JSON文件
QFile file("person.json");
if (file.open(QIODevice::WriteOnly)) {
file.write(jsonDoc.toJson());
file.close();
qDebug() << "保存成功!";
} else {
qDebug() << "保存失败!";
}
return a.exec();
}
```
上述代码中,我们定义了一个Person结构体,其中包含了姓名和年龄两个成员变量。然后,我们将结构体的数据保存到QJsonObject对象中,再将QJsonObject对象转换为QJsonDocument对象。最后,我们将QJsonDocument对象保存为名称为"person.json"的JSON文件中。
运行上述代码后,将在项目文件夹下生成一个名为"person.json"的文件,其内容为:
```json
{
"name": "张三",
"age": 25
}
```
这样,我们就成功将结构体保存为JSON格式了。
阅读全文