摘要
- QJsonArray 类 相关学习笔记
QJsonArray 类 详解
QJsonArray
是 Qt 中用于表示 JSON 数组的类。它提供了一组功能,用于存储和操作 JSON 格式的数组数据,支持操作类似 QList
或标准数组。
以下是 QJsonArray
类的详细介绍:
1. 概述
QJsonArray
表示 JSON 中的数组,可以包含以下类型的元素:
QJsonValue::Null
QJsonValue::Bool
QJsonValue::Double
QJsonValue::String
QJsonValue::Array
QJsonValue::Object
一个 QJsonArray
实例可以存储任意数量的 JSON 值,并允许动态操作。
2. 构造函数
默认构造函数:
1
QJsonArray();
创建一个空的 JSON 数组。
拷贝构造函数:
1
QJsonArray(const QJsonArray &other);
创建一个与
other
相同的 JSON 数组。析构函数:
1
~QJsonArray();
3. 常用方法
3.1 元素操作
添加元素:
1
void append(const QJsonValue &value);
将
value
添加到数组的末尾。插入元素:
1
void insert(int i, const QJsonValue &value);
在索引
i
处插入value
。替换元素:
1
void replace(int i, const QJsonValue &value);
替换索引
i
处的元素为value
。访问元素:
1
2
3QJsonValue at(int i) const;
QJsonValue operator[](int i) const;
QJsonValueRef operator[](int i);移除元素:
1
void removeAt(int i);
清空数组:
1
void clear();
3.2 查询与检查
获取大小:
1
int size() const;
检查是否为空:
1
bool isEmpty() const;
检查是否包含特定值:
1
bool contains(const QJsonValue &value) const;
查找值的索引:
1
int indexOf(const QJsonValue &value) const;
3.3 遍历数组
获取数组中的所有值:
1
QList<QJsonValue> toVariantList() const;
使用迭代器遍历:
1
2
3for (auto it = jsonArray.begin(); it != jsonArray.end(); ++it) {
QJsonValue value = *it;
}基于范围的
for
循环:1
2
3for (const QJsonValue &value : jsonArray) {
// 使用 value
}
3.4 其他方法
将 JSON 数组转换为字符串:
1
QString toString() const;
将数组转换为
QVariantList
:1
QVariantList toVariantList() const;
4. 示例代码
4.1 创建与操作 JSON 数组
1 |
|
输出:
1 | "Replaced" |
4.2 嵌套 JSON 数据
1 |
|
输出:
1 | [ |
4.3 从 JSON 字符串解析数组
1 |
|
输出:
1 | 42 |
5. 注意事项
- 数组索引: 如果访问超出索引范围,会返回默认的
QJsonValue::Null
。 - 动态扩展:
QJsonArray
的大小会根据插入的元素动态调整。 - 类型检查: 使用
QJsonValue
的类型检查方法(如isObject
,isArray
等)确保操作的值类型正确。
QJsonArray
是处理 JSON 数组的核心类,结合 QJsonObject
和 QJsonDocument
可以构建复杂的 JSON 数据结构并高效管理它们。