qt create将json文件内容解析道Qvector <Qstringlist>变量中
时间: 2024-03-09 07:47:50 浏览: 23
你可以使用Qt自带的Json模块来解析json文件内容,并将结果存储到QVector<QStringList>变量中。下面是一个示例代码:
```c++
#include <QFile>
#include <QJsonDocument>
#include <QJsonArray>
#include <QJsonObject>
#include <QJsonValue>
#include <QVector>
#include <QStringList>
QVector<QStringList> parseJsonFile(QString filePath)
{
QVector<QStringList> result;
QFile file(filePath);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
// 文件打开失败
return result;
}
QByteArray jsonData = file.readAll();
QJsonDocument jsonDoc(QJsonDocument::fromJson(jsonData));
if (jsonDoc.isNull())
{
// json数据格式错误
return result;
}
if (!jsonDoc.isArray())
{
// json数据不是数组格式
return result;
}
QJsonArray jsonArray = jsonDoc.array();
for (int i = 0; i < jsonArray.size(); i++)
{
QJsonValue item = jsonArray.at(i);
if (!item.isObject())
{
// 数组元素不是对象格式
continue;
}
QJsonObject obj = item.toObject();
QStringList values;
// 依次读取每个属性的值
values << obj.value("name").toString();
values << obj.value("age").toString();
values << obj.value("gender").toString();
result.append(values);
}
return result;
}
```
在上面的代码中,我们使用了QFile类来读取json文件的内容,然后使用QJsonDocument类将json数据解析成QJsonArray对象,再遍历数组中的每个元素,将其转换为QJsonObject对象,最后读取每个属性的值并存储到QStringList中,最终将所有QStringList存储到QVector中并返回。