写一个qt读取json的代码
时间: 2024-05-05 09:17:11 浏览: 113
下面是一个简单的示例,展示了如何使用Qt读取JSON数据:
```c++
#include <QCoreApplication>
#include <QJsonDocument>
#include <QJsonObject>
#include <QJsonArray>
#include <QDebug>
#include <QFile>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 从文件中读取JSON数据
QFile file(":/data.json");
if(!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
qDebug() << "Failed to open file!";
return -1;
}
QByteArray data = file.readAll();
file.close();
// 解析JSON数据
QJsonDocument doc = QJsonDocument::fromJson(data);
if(!doc.isObject())
{
qDebug() << "Failed to parse JSON data!";
return -1;
}
QJsonObject rootObj = doc.object();
// 读取单个值
QString name = rootObj.value("name").toString();
qDebug() << "Name: " << name;
// 读取数组
QJsonArray array = rootObj.value("scores").toArray();
for(int i = 0; i < array.size(); i++)
{
QJsonObject obj = array.at(i).toObject();
QString subject = obj.value("subject").toString();
int score = obj.value("score").toInt();
qDebug() << "Subject: " << subject << ", Score: " << score;
}
return a.exec();
}
```
在这个例子中,我们使用QJsonDocument类来解析JSON数据。首先,我们从文件中读取JSON数据,然后将其解析为QJsonDocument对象。如果解析成功,我们可以访问JSON对象的各个部分。在这个例子中,我们读取了一个字符串和一个数组。我们可以使用QJsonObject和QJsonArray类来访问JSON对象的键和值。
阅读全文