qt多层嵌套json
时间: 2024-05-26 10:08:24 浏览: 248
在Qt中,可以使用QJsonDocument和QJsonObject类来解析和构建JSON数据。对于多层嵌套的JSON数据,可以使用QVariantMap或者QVariantList来实现。
QVariantMap用于表示键值对形式的JSON对象,它类似于C++中的std::map。可以通过insert()方法添加键值对,也可以通过value()方法获取对应键的值。
例如,以下代码创建了一个包含两个键值对的JSON对象:
```
QVariantMap person;
person.insert("name", "Tom");
person.insert("age", 20);
```
QVariantList用于表示JSON数组,它类似于C++中的std::vector。可以通过append()方法向数组中添加元素,也可以通过at()方法获取指定下标的元素。
例如,以下代码创建了一个包含两个元素的JSON数组:
```
QVariantList fruit;
fruit.append("apple");
fruit.append("orange");
```
对于多层嵌套的JSON数据,可以使用QVariantMap和QVariantList相互嵌套,例如:
```
QVariantMap person;
person.insert("name", "Tom");
person.insert("age", 20);
QVariantList friends;
friends.append(QVariantMap{{"name", "John"}, {"age", 22}});
friends.append(QVariantMap{{"name", "Mary"}, {"age", 21}});
person.insert("friends", friends);
```
以上代码创建了一个包含一个嵌套的JSON对象的JSON对象,其中friends键对应的值是一个包含两个元素的JSON数组。
阅读全文