如果QJsonArray中有嵌套的数组或对象,如何解析它们?
时间: 2024-10-11 20:12:00 浏览: 13
当QJsonArray中包含嵌套的数组或对象时,解析起来会稍微复杂一些,但仍然遵循类似的方法。这里是一个示例:
假设你的JSON数据类似于这个样子:
```json
{
"array": [
{"name": "John", "age": 30},
["nested", 2, {"key": "value"}]
]
}
```
你可以这样做:
```cpp
QJsonDocument document = ... // 初始化QJsonDocument同上
// 获取外层的QJsonArray
QJsonArray outerArray = document["array"].toArray();
foreach(QJsonValue item, outerArray) {
if (item.isObject()) { // 如果是对象
QJsonObject obj = item.toObject();
QString name = obj.value("name").toString();
int age = obj.value("age").toInt();
qDebug() << "Name: " << name << ", Age: " << age;
} else if (item.isArray()) { // 如果是数组
QJsonArray nestedArray = item.toArray();
foreach(QJsonValue nestedItem, nestedArray) {
qDebug() << "Nested array element: " << nestedItem.toString();
}
} else {
qDebug() << "Other type: " << item.toString();
}
}
```
每一步都在递归地检查并处理嵌套的内容。如果你需要更具体的帮助,如特定类型的转换,记得提供相应的类型判断。
阅读全文