摘要
- QJsonObject 类 相关学习笔记
C++ Qt QJsonObject 类 详解
QJsonObject
是 Qt 框架中用于表示 JSON 对象的类,它提供了操作 JSON 数据的功能,例如访问键值对、添加或删除元素、以及与其他 JSON 相关类(如 QJsonArray
和 QJsonDocument
)的交互。
以下是 QJsonObject
类的详细介绍:
1. 概述
QJsonObject
是一种键值对的集合,其中键是 QString
类型,值可以是以下类型之一:
QJsonValue::Null
QJsonValue::Bool
QJsonValue::Double
QJsonValue::String
QJsonValue::Array
QJsonValue::Object
QJsonObject
的主要用途是存储和操作 JSON 格式的数据,通常结合 QJsonDocument
使用。
2. 构造函数
默认构造函数:
1
QJsonObject();
创建一个空的 JSON 对象。
拷贝构造函数:
1
QJsonObject(const QJsonObject &other);
创建一个与
other
相同的 JSON 对象。析构函数:
1
~QJsonObject();
3. 常用方法
3.1 插入与访问键值对
插入键值对:
1
void insert(const QString &key, const QJsonValue &value);
或者使用重载操作符:
1
QJsonValue &operator[](const QString &key);
访问值:
1
QJsonValue value(const QString &key) const;
检查是否包含键:
1
bool contains(const QString &key) const;
删除键值对:
1
int remove(const QString &key);
3.2 遍历 JSON 对象
键列表:
1
QStringList keys() const;
值列表:
1
QList<QJsonValue> values() const;
迭代键值对:
使用for
循环遍历:1
2
3
4for (auto it = jsonObject.begin(); it != jsonObject.end(); ++it) {
QString key = it.key();
QJsonValue value = it.value();
}
3.3 大小与空检查
获取键值对数量:
1
int size() const;
检查是否为空:
1
bool isEmpty() const;
4. 与其他 JSON 类的互操作
转换为
QJsonDocument
:1
QJsonDocument doc(jsonObject);
从
QJsonDocument
创建:1
QJsonObject jsonObject = doc.object();
与
QJsonValue
的互操作:1
QJsonValue value = jsonObject.value("key");
5. 示例代码
5.1 创建与操作 JSON 对象
1 |
|
输出:
1 | Name: "Alice" |
5.2 遍历键值对
1 | QJsonObject jsonObject; |
6. 注意事项
QJsonObject
的键是区分大小写的。- JSON 的键通常是字符串类型,不能为非字符串类型。
- 如果需要处理嵌套 JSON 数据,可以递归地使用
QJsonObject
和QJsonArray
。
以上就是 Qt 中 QJsonObject
的详细介绍和使用方法。