qt 从文件夹选取json文件并读取
时间: 2023-08-06 15:02:50 浏览: 119
qt中json读写
在 Qt 中,可以使用 QFileDialog 类打开文件对话框来选择要读取的 JSON 文件,然后使用 QJsonDocument 类解析 JSON 数据。
以下是一个简单的示例:
```cpp
#include <QApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QFile>
#include <QFileDialog>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 打开文件对话框选择 JSON 文件
QString fileName = QFileDialog::getOpenFileName(nullptr, "Open JSON File", QString(), "JSON Files (*.json)");
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly)) {
qDebug() << "Failed to open JSON file: " << file.errorString();
return 1;
}
// 解析 JSON 数据
QByteArray jsonData = file.readAll();
QJsonDocument jsonDoc(QJsonDocument::fromJson(jsonData));
QJsonObject jsonObj = jsonDoc.object();
// 读取 JSON 数据
QString name = jsonObj["name"].toString();
int age = jsonObj["age"].toInt();
QJsonArray hobbiesArray = jsonObj["hobbies"].toArray();
QStringList hobbies;
for (const auto &hobby : hobbiesArray) {
hobbies.append(hobby.toString());
}
qDebug() << "Name: " << name;
qDebug() << "Age: " << age;
qDebug() << "Hobbies: " << hobbies.join(", ");
return a.exec();
}
```
在上面的示例中,我们首先使用 `QFileDialog::getOpenFileName` 函数打开文件对话框,让用户选择要读取的 JSON 文件。然后,我们使用 `QFile` 类打开文件并读取 JSON 数据。接下来,使用 `QJsonDocument` 类解析 JSON 数据并将其转换为 `QJsonObject` 对象。最后,我们可以使用 `QJsonObject` 对象读取 JSON 数据。
请注意,上面的示例假设 JSON 文件包含以下数据:
```json
{
"name": "Alice",
"age": 25,
"hobbies": [
"reading",
"swimming",
"traveling"
]
}
```
阅读全文