QJsonArray Class
QJsonArray 类封装了一个 JSON 数组。更多内容...
| 头文件: | #include <QJsonArray> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 所有成员的列表,包括继承的成员
- QJsonArray 是Qt 中 JSON 支持和隐式共享类的一部分。
注意:该类中的所有函数均为可重入的。
QJsonArray 比较
| 类别 | 可比较类型 |
|---|---|
| 相等性 | QJsonArray |
| 相等性 | QJsonValue. |
公共类型
| class | const_iterator |
| class | iterator |
| ConstIterator | |
| Iterator | |
| const_pointer | |
| const_reference | |
| difference_type | |
| pointer | |
| reference | |
| size_type | |
| value_type |
公共函数
| QJsonArray() | |
| QJsonArray(std::initializer_list<QJsonValue> args) | |
| QJsonArray(const QJsonArray &other) | |
| QJsonArray(QJsonArray &&other) | |
| ~QJsonArray() | |
| void | append(const QJsonValue &value) |
| QJsonValue | at(qsizetype i) const |
| QJsonArray::iterator | begin() |
| QJsonArray::const_iterator | begin() const |
| QJsonArray::const_iterator | cbegin() const |
| QJsonArray::const_iterator | cend() const |
| QJsonArray::const_iterator | constBegin() const |
| QJsonArray::const_iterator | constEnd() const |
| bool | contains(const QJsonValue &value) const |
| qsizetype | count() const |
| bool | empty() const |
| QJsonArray::iterator | end() |
| QJsonArray::const_iterator | end() const |
| QJsonArray::iterator | erase(QJsonArray::iterator it) |
| QJsonValue | first() const |
| QJsonArray::iterator | insert(QJsonArray::iterator before, const QJsonValue &value) |
| void | insert(qsizetype i, const QJsonValue &value) |
| bool | isEmpty() const |
| QJsonValue | last() const |
| void | pop_back() |
| void | pop_front() |
| void | prepend(const QJsonValue &value) |
| void | push_back(const QJsonValue &value) |
| void | push_front(const QJsonValue &value) |
| void | removeAt(qsizetype i) |
| void | removeFirst() |
| void | removeLast() |
| void | replace(qsizetype i, const QJsonValue &value) |
| qsizetype | size() const |
| void | swap(QJsonArray &other) |
| QJsonValue | takeAt(qsizetype i) |
| QVariantList | toVariantList() const |
| QJsonArray | operator+(const QJsonValue &value) const |
| QJsonArray & | operator+=(const QJsonValue &value) |
| QJsonArray & | operator<<(const QJsonValue &value) |
| QJsonArray & | operator=(QJsonArray &&other) |
| QJsonArray & | operator=(const QJsonArray &other) |
| QJsonValueRef | operator[](qsizetype i) |
| QJsonValue | operator[](qsizetype i) const |
静态公共成员
| QJsonArray | fromStringList(const QStringList &list) |
| QJsonArray | fromVariantList(const QVariantList &list) |
相关的非成员
| bool | operator!=(const QJsonArray &lhs, const QJsonArray &rhs) |
| bool | operator==(const QJsonArray &lhs, const QJsonArray &rhs) |
详细说明
JSON数组是一组值的列表。可以通过向数组中插入或移除QJsonValue 对象来操作该列表。
QJsonArray 可以与QVariantList 相互转换。您可以使用size()、insert() 和removeAt() 从其中查询条目数量,并使用标准的 C++ 迭代器模式遍历其内容。
QJsonArray 是一个隐式共享类,只要未被修改,它就会与创建它的文档共享数据。
您可以通过 `QJsonDocument` 将数组与基于文本的 JSON 相互转换。
另请参阅 Qt 中的 JSON 支持以及保存和加载游戏。
成员类型文档
QJsonArray::ConstIterator
QJsonArray::const_iterator 的 Qt 风格同义词。
QJsonArray::Iterator
QJsonArray::iterator 的 Qt 风格同义词。
QJsonArray::const_pointer
constQJsonValue * 的类型定义。为兼容 STL 而提供。
QJsonArray::const_reference
constQJsonValue 的 typedef。为兼容 STL 而提供。
QJsonArray::difference_type
qsizetype 的 typedef。为兼容 STL 而提供。
QJsonArray::pointer
QJsonValue 的typedef定义。为兼容STL而提供。
QJsonArray::reference
QJsonValue 的typedef定义。为兼容STL而提供。
QJsonArray::size_type
qsizetype 的 typedef 定义。为确保与 STL 兼容而提供。
QJsonArray::value_type
QJsonValue 的 typedef 定义。为兼容 STL 而提供。
成员函数文档
QJsonArray::QJsonArray()
创建一个空数组。
QJsonArray::QJsonArray(std::initializer_list<QJsonValue> args)
创建一个由args 初始化列表初始化的数组。
QJsonArray 的构造方式与 JSON 语法类似,例如:
QJsonArray array = { 1, 2.2, QString() };[noexcept] QJsonArray::QJsonArray(const QJsonArray &other)
创建other 的副本。
由于 QJsonArray 是隐式共享的,因此只要对象未被修改,该副本就是浅拷贝。
[noexcept] QJsonArray::QJsonArray(QJsonArray &&other)
从other 构建一个QJsonArray。
[noexcept] QJsonArray::~QJsonArray()
删除该数组。
void QJsonArray::append(const QJsonValue &value)
将value 插入数组末尾。
QJsonValue QJsonArray::at(qsizetype i) const
返回一个QJsonValue ,表示索引i 对应的值。
如果i 超出范围,则返回的QJsonValue 为Undefined 。
QJsonArray::iterator QJsonArray::begin()
返回一个指向数组中第一个元素的STL 风格迭代器。
另请参阅 constBegin() 和end()。
QJsonArray::const_iterator QJsonArray::begin() const
这是一个重载函数。
QJsonArray::const_iterator QJsonArray::cbegin() const
返回一个指向数组中第一个元素的常量STL 风格迭代器。
QJsonArray::const_iterator QJsonArray::cend() const
返回一个指向数组中最后一个元素之后那个虚构元素的、STL 风格的const迭代器。
QJsonArray::const_iterator QJsonArray::constBegin() const
返回一个指向数组中第一个元素的常量STL 风格迭代器。
QJsonArray::const_iterator QJsonArray::constEnd() const
返回一个指向数组中最后一个元素之后那个“虚构”元素的、STL 风格的const迭代器。
另请参阅 constBegin() 和end()。
bool QJsonArray::contains(const QJsonValue &value) const
如果数组中包含value ,则返回true ;否则返回false 。
另请参阅 count()。
qsizetype QJsonArray::count() const
与size() 相同。
另请参阅 size()。
bool QJsonArray::empty() const
提供此函数是为了兼容 STL。它等同于 `isEmpty()`,若数组为空,则返回 `true `。
QJsonArray::iterator QJsonArray::end()
返回一个STL 风格的迭代器,该迭代器指向数组中最后一个元素之后的一个虚构元素。
QJsonArray::const_iterator QJsonArray::end() const
这是一个重载函数。
QJsonArray::iterator QJsonArray::erase(QJsonArray::iterator it)
删除由 `it` 指向的项目,并返回一个指向下一个项目的迭代器。
另请参阅 removeAt()。
QJsonValue QJsonArray::first() const
返回数组中存储的第一个值。
与at(0) 相同。
另请参阅 at()。
[static] QJsonArray QJsonArray::fromStringList(const QStringList &list)
将字符串列表list 转换为QJsonArray 。
list 中的值将被转换为 JSON 值。
另请参阅 toVariantList() 和QJsonValue::fromVariant()。
[static] QJsonArray QJsonArray::fromVariantList(const QVariantList &list)
将变体列表list 转换为QJsonArray 。
list 中的QVariant 值将被转换为JSON值。
注意: 从QVariant 的转换 并非完全无损。更多信息请参阅QJsonValue::fromVariant()的文档。
另请参阅 toVariantList() 和QJsonValue::fromVariant()。
QJsonArray::iterator QJsonArray::insert(QJsonArray::iterator before, const QJsonValue &value)
在before 所指向的位置之前插入value ,并返回一个指向新插入项的迭代器。
另请参阅 erase() 和insert(qsizetype, const QJsonValue &)。
void QJsonArray::insert(qsizetype i, const QJsonValue &value)
将value 插入数组的索引位置i 。如果i 为0 ,则将该值插入数组开头;如果i 为size(),则将该值插入数组末尾。
另请参阅 append()、prepend()、replace() 以及removeAt()。
bool QJsonArray::isEmpty() const
如果对象为空,则返回true 。这与size() == 0的效果相同。
另请参阅 size()。
QJsonValue QJsonArray::last() const
返回数组中存储的最后一个值。
与 `at(size() - 1)` 相同。
另请参阅 at()。
void QJsonArray::pop_back()
提供此函数是为了兼容 STL。它等同于 `removeLast()`。数组不能为空。如果数组可以为空,请在调用此函数之前先调用 `isEmpty()`。
void QJsonArray::pop_front()
提供此函数是为了兼容 STL。它等同于 `removeFirst()`。数组不能为空。如果数组可以为空,请在调用此函数之前先调用 `isEmpty()`。
void QJsonArray::prepend(const QJsonValue &value)
将value 插入数组开头。
这与insert(0, value) 效果相同,会将value 追加到数组开头。
void QJsonArray::push_back(const QJsonValue &value)
提供此函数是为了兼容 STL。它等同于 `append(value)`,并将 `value ` 追加到数组中。
void QJsonArray::push_front(const QJsonValue &value)
提供此函数是为了兼容 STL。它等同于 `prepend(value)`,并将 `value ` 追加到数组开头。
void QJsonArray::removeAt(qsizetype i)
删除索引位置为i 处的值。i 必须是数组中的有效索引位置(即0 <= i < size() )。
void QJsonArray::removeFirst()
删除数组中的第一个元素。调用此函数等同于调用removeAt(0) 。数组不能为空。如果数组可以为空,请在调用此函数之前先调用isEmpty()。
另请参阅 removeAt() 和removeLast()。
void QJsonArray::removeLast()
移除数组中的最后一个元素。调用此函数等同于调用removeAt(size() - 1) 。数组不能为空。如果数组可以为空,请在调用此函数之前先调用isEmpty()。
另请参见 removeAt() 和removeFirst()。
void QJsonArray::replace(qsizetype i, const QJsonValue &value)
将索引位置为i 的元素替换为value 。i 必须是数组中的有效索引位置(即,0 <= i < size() )。
另请参阅 operator[]() 和removeAt()。
qsizetype QJsonArray::size() const
返回数组中存储的值的个数。
[noexcept] void QJsonArray::swap(QJsonArray &other)
将该数组与other 互换。该操作速度极快,且绝不会失败。
QJsonValue QJsonArray::takeAt(qsizetype i)
移除索引位置为i 的项并返回该项。i 必须是数组中的有效索引位置(即0 <= i < size() )。
如果不使用返回值,removeAt() 的效率更高。
另请参阅 removeAt()。
QVariantList QJsonArray::toVariantList() const
将该对象转换为QVariantList 。
返回生成的映射。
QJsonArray QJsonArray::operator+(const QJsonValue &value) const
返回一个数组,其中包含该数组中的所有元素,后面跟上指定的value 。
另请参阅 ` operator+=()`。
QJsonArray &QJsonArray::operator+=(const QJsonValue &value)
将value 追加到数组中,并返回该数组本身的引用。
另请参阅 append() 和operator<<()。
QJsonArray &QJsonArray::operator<<(const QJsonValue &value)
将value 追加到数组中,并返回该数组本身的引用。
另请参阅 operator+=() 和append()。
[noexcept] QJsonArray &QJsonArray::operator=(QJsonArray &&other)
该操作将other 移入并赋值给此数组。
[noexcept] QJsonArray &QJsonArray::operator=(const QJsonArray &other)
将other 赋值给该数组。
QJsonValueRef QJsonArray::operator[](qsizetype i)
返回索引位置i 处的值,并将其作为可修改的引用返回。i 必须是数组中的有效索引位置(即0 <= i < size() )。
返回值的类型为QJsonValueRef ,这是QJsonArray 和QJsonObject 的辅助类。当您获得一个类型为QJsonValueRef 的对象时,可以将其视为对QJsonValue 的引用。如果您对其进行赋值,该赋值将作用于您从中获取该引用的QJsonObject 中QJsonArray 位置处的字符。
另请参阅 at()。
QJsonValue QJsonArray::operator[](qsizetype i) const
与at()相同。
这是一个重载函数。
相关的非成员函数
[noexcept] bool operator!=(const QJsonArray &lhs, const QJsonArray &rhs)
如果数组 `lhs ` 不等于 `rhs`,则返回 `true `;否则返回 `false `。
[noexcept] bool operator==(const QJsonArray &lhs, const QJsonArray &rhs)
如果数组 `lhs ` 等于 `rhs`,则返回 `true `;否则返回 `false `。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.