QJsonArray Class

QJsonArray 类封装了一个 JSON 数组。更多

头文件: #include <QJsonArray>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

该类可等价比较

该类可与QJsonValue 进行等价比较

注意:该类中的所有函数都是可重入的

公共类型

公共函数

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's 来操作该列表。

QJsonArray 可以转换为QVariantList ,也可以从 转换为 QJsonArray。您可以通过size()、insert() 和removeAt() 条目查询条目的数量,并使用标准 C++ 迭代模式遍历其内容。

QJsonArray 是一个隐式共享类,只要文档未被修改,它就会与创建它的文档共享数据。

您可以通过QJsonDocument 将数组转换为基于文本的 JSON。

另请参阅 《Qt 中的 JSON 支持》和《保存和加载游戏》。

成员类型文档

QJsonArray::ConstIterator

QJsonArray::const_iterator 的 Qt-style 同义词。

QJsonArray::Iterator

QJsonArray::iterator 的 Qt-style 同义词。

QJsonArray::const_pointer

用于 constQJsonValue * 的类型定义。为与 STL 兼容而提供。

QJsonArray::const_reference

用于 constQJsonValue & 的类型定义。为与 STL 兼容而提供。

QJsonArray::difference_type

qsizetype 的类型定义。为与 STL 兼容而提供。

QJsonArray::pointer

用于QJsonValue * 的类型定义。为与 STL 兼容而提供。

QJsonArray::reference

QJsonValue & 的类型定义。为与 STL 兼容而提供。

QJsonArray::size_type

qsizetype 的类型定义。为与 STL 兼容而提供。

QJsonArray::value_type

用于QJsonValue 的类型定义。为与 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)

Move-从other 构造一个 QJsonArray。

[noexcept] QJsonArray::~QJsonArray()

删除数组。

void QJsonArray::append(const QJsonValue &value)

在数组末尾插入value

另请参阅 prepend() 和insert()。

QJsonValue QJsonArray::at(qsizetype i) const

返回代表索引i 值的QJsonValue

如果i 越界,则返回的QJsonValueUndefined

QJsonArray::iterator QJsonArray::begin()

返回一个STL 样式的迭代器,指向数组中的第一个项目。

另请参阅 constBegin() 和end()。

QJsonArray::const_iterator QJsonArray::begin() const

这是一个重载函数。

QJsonArray::const_iterator QJsonArray::cbegin() const

返回指向数组中第一个项目的 ConstSTL 样式迭代器

另请参阅 begin() 和cend()。

QJsonArray::const_iterator QJsonArray::cend() const

返回一个常STL 样式的迭代器,指向数组中最后一个项目之后的虚数项目。

另请参阅 cbegin() 和end() 。

QJsonArray::const_iterator QJsonArray::constBegin() const

返回指向数组中第一个项目的 ConstSTL 样式迭代器

另请参阅 begin() 和constEnd()。

QJsonArray::const_iterator QJsonArray::constEnd() const

返回一个常STL 样式的迭代器,指向数组中最后一个项目之后的虚数项目。

另请参阅 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 样式的迭代器,指向数组中最后一个项目之后的虚数项目。

另请参阅 begin() 和constEnd()。

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)

value 插入before 指向的位置之前,并返回指向新插入项的迭代器。

另请参阅 erase() 和 insert()。

void QJsonArray::insert(qsizetype i, const QJsonValue &value)

value 插入数组中的索引位置i 。如果i0 ,该值将被预输入数组。如果isize() ,该值将被添加到数组中。

另请参阅 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

另请参阅 append() 和insert()。

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() )。

另请参阅 insert() 和replace()。

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)

value 替换索引位置i 上的项目。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)

Move-assignsother 到该数组。

[noexcept] QJsonArray &QJsonArray::operator=(const QJsonArray &other)

other 赋值给该数组。

QJsonValueRef QJsonArray::operator[](qsizetype i)

i i 必须是数组中有效的索引位置(即 )。0 <= i < size()

返回值的类型是QJsonValueRef ,它是QJsonArrayQJsonObject 的辅助类。当您获得QJsonValueRef 类型的对象时,可以将其作为QJsonValue 的引用来使用。如果对其进行赋值,赋值将应用于QJsonObjectQJsonArray 中的字符,而您正是从 中获得该引用的。

另请参阅 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

© 2025 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.