解析QJsonArray
时间: 2023-09-06 15:07:42 浏览: 103
QJsonArray是Qt中用于表示JSON数组的类,它可以包含多个QJsonValue对象。我们可以通过以下步骤来解析QJsonArray:
1. 获取QJsonArray对象
我们可以使用QJsonDocument类的fromJson()函数将JSON字符串解析为QJsonDocument对象,然后使用toVariant()函数将其转换为QVariant对象。最后,使用toMap()或toList()函数将其转换为QMap或QList对象,然后获取QJsonArray对象。
例如:
```
QJsonDocument doc = QJsonDocument::fromJson(jsonStr.toUtf8());
QVariant variant = doc.toVariant();
QList<QVariant> list = variant.toList();
QJsonArray array = QJsonArray::fromVariantList(list);
```
2. 遍历QJsonArray对象
我们可以使用foreach循环或者迭代器来遍历QJsonArray对象,并获取每个QJsonValue对象的值。
例如:
```
foreach (const QJsonValue & value, array) {
if (value.isString()) {
QString strValue = value.toString();
qDebug() << "String value: " << strValue;
} else if (value.isDouble()) {
double doubleValue = value.toDouble();
qDebug() << "Double value: " << doubleValue;
} else if (value.isBool()) {
bool boolValue = value.toBool();
qDebug() << "Bool value: " << boolValue;
} else if (value.isArray()) {
// 递归遍历子数组
QJsonArray subArray = value.toArray();
foreach (const QJsonValue & subValue, subArray) {
// ...
}
} else if (value.isObject()) {
// ...
}
}
```
通过以上两个步骤,我们可以成功解析QJsonArray对象。
阅读全文