qt QJsonObject多层遍历取值
时间: 2023-11-14 11:06:15 浏览: 230
qt xml操作 遍历
可以使用QJsonObject的keys()方法获取所有的key,并通过循环获取每个key对应的value。如果value是QJsonObject类型,可以递归调用该方法。示例代码如下:
```cpp
// jsonObject为要遍历的QJsonObject对象
void traverseJsonObject(QJsonObject jsonObject) {
QStringList keys = jsonObject.keys(); // 获取所有key
foreach(QString key, keys) {
QJsonValue value = jsonObject.value(key); // 根据key获取对应的value
if(value.isObject()) { // 如果value是QJsonObject类型
traverseJsonObject(value.toObject()); // 递归调用
} else {
// 处理value
qDebug() << key << ":" << value.toString();
}
}
}
```
调用该方法:
```cpp
QJsonObject jsonObject = {{"name", "Tom"},{"age", 20},{"info", {{"address", "Beijing"},{"email", "tom@qq.com"}}}};
traverseJsonObject(jsonObject);
```
输出:
```
name : "Tom"
age : 20
address : "Beijing"
email : "tom@qq.com"
```
阅读全文