qt creator 点击保存按钮设定路径,将结构体数据保存到自定义路径的新生成的.json文件中,展示完整代码
时间: 2024-03-03 22:48:08 浏览: 75
将结构体保存到文件
好的,以下是基于Qt Creator的代码,实现将结构体数据保存到自定义路径的新生成的.json文件中:
首先,我们定义一个结构体,并在其中添加一些数据:
```cpp
struct Person {
QString name;
int age;
QString address;
};
```
接下来,我们编写一个函数,将Person结构体数据保存到.json文件中:
```cpp
void savePersonToJson(const QString& fileName, const Person& person) {
QJsonObject jsonObj;
jsonObj["name"] = person.name;
jsonObj["age"] = person.age;
jsonObj["address"] = person.address;
QJsonDocument jsonDoc(jsonObj);
QByteArray byteArr = jsonDoc.toJson(QJsonDocument::Indented);
QFile file(fileName);
if (file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QTextStream out(&file);
out << byteArr;
file.close();
}
}
```
在这个函数中,我们首先将Person结构体中的数据转换为QJsonObject类型,然后使用QJsonDocument将QJsonObject转换为json文档,并将其保存到QByteArray中。最后,我们创建一个QFile对象,打开指定的文件,将QByteArray中的数据写入文件中。
最后,在主函数中,我们可以调用savePersonToJson()函数,将Person结构体数据保存到自定义路径的新生成的.json文件中:
```cpp
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
Person person;
person.name = "Tom";
person.age = 18;
person.address = "Beijing";
QString filePath = "/path/to/save/file.json";
savePersonToJson(filePath, person);
return a.exec();
}
```
在这个例子中,我们将Person结构体数据保存到了指定的文件路径"/path/to/save/file.json"中。
希望这段代码能够帮助到你!
阅读全文