Qt:QJsonArray
0、说明
QJsonArray中存储了一系列的QJsonValue。可以向其中插入、删除QJsonValue。
一个QJsonArray可以与QVariantList互相转换。可以通过size()访问其中的元素数,insert()、removeAt()移除其中的元素,并通过标准C++迭代模式进行迭代。
QJsonArray是个隐含的共享类,它与创建该类的Json文档共享数据,也就是说修改数据时它们会同时改变。
可以从JSON中生成QJsonArray或者把QJsonArray转化为JSON。
1、模块和加载项
Header | #include<QJsonArray> |
qmake | QT += core |
Since | Qt 5.0 |
2、构造
QJsonArray(QJsonArray other) | 获得另一个QJsonArray的副本 |
QJsonArray(QJsonArray &other) | 从另一个QJsonArray构造 |
QJsonArray(List<QJsonValue> args) |
从一个List<QJsonValue>中构造QJsonArray QJsonArray sedId = {1,2,3,4,5,6}; |
QJsonArray() | 构造一个空的QJsonArray |
3、静态方法
返回值类型 |
方法 |
说明 |
QJsonArray | fromStringList(QStringList list) |
从一个QStringList构造QJsonArray List中的value将被转换为JSON values |
QJsonArray | fromVariantList(QVariantList list) |
从一个QVariantList构造QJSonArray List中的value将被转换为JSON values |
4、实例方法
返回值类型 |
方法 |
说明 |
QJsonArray & bool QJsonArray QJsonArray & QJsonArray & bool QJsonValue |
operator=(QJsonArray other) operator!=(QJsonArray other) operator+(QJsonValue value) operator+=(QJsonValue value) operator<<(QJsonValue value) operator==(QJsonArray other) operator[](int i) |
将另一个Array赋值给该Array 当两个Array不相等时,返回true 生成一个包含两个array所有元素的array 把另一个array附加到该array之后 往array之后添加一个元素,返回新array的引用 当两个array相等时,返回true 提取索引i处的元素,也就是,可以用array[i]访问元素 |
void | append(QJsonValue value) | 往array末尾加一个value |
QJsonValue | at(int i) |
返回array中索引为i的QJsonValue 如果i超限则返回Undefined类型的QJsonValue |
QJsonArray::iterator | begin() | 返回一个STL样式的迭代器,指向array中的第一项 |
bool | contains(QJsonValue value) | 如果array中包含value,返回true |
int | count() | 等同于size(),元素数 |
bool | empty() | 等同于isEmpty(),是否为空 |
QJsonArray::iterator | end() | 返回一个STL迭代器,指向array中的最后一项 |
QJsonArray::iterator | erase(QJsonArray::iterator it) | 移除it指向的项,返回指向下一项的指针 |
QJsonValue | first() | 返回array中的第一个value,等同于at(0) |
void | insert(int i, QJsonValue value) | 在索引i处插入value |
bool | isEmpty() | array为空时返回true |
QJsonValue | last() | 返回array中的最后一个value,等同于at( size() - 1 ) |
void | pop_back() |
移除最后一个元素,等同于removeLast() 调用该方法前通常先用isEmpty()判断array是否为空 |
pop_front() |
移除第一个元素,等同于removeFirst() 调用该方法前通常先用isEmpty()判断array是否为空 |
|
prepend(const QJsonValue &value) | 在array首插入元素value | |
push_back(const QJsonValue &value) | 等同于append | |
push_front(const QJsonValue &value) | 等同于prepend | |
removeAt(int i) | 移除指定索引处的元素,0<= i < size() | |
removeFirst() | 移除第一个元素 | |
removeLast() | 移除最后一个元素 | |
replace(int i, QJsonValue value) | 用value取代索引i处的值 | |
int | size() | 返回元素个数 |
void | swap(QJsonArray &other) | 交换两个array的元素 |
QJsonValue | takeAt(int i) | 移除并返回指定索引i处的元素 |
QVariantList | toVariantList() | 把QJsonArray转换为VariantList |
5、用法
1)访问QJsonArray中的所有QJsonValue:[i] 或 at(i)
for(int i=0;i<jsonarray.size();i++){ QJsonValue jval = jsonarray[i]; //...对jval的处理 }
6、QJsonValue、QJsonArray、QJsonObject、QJsonDocument之间的关联
Qt:QJsonDocument以及与QJsonArray、QJsonObject、QJsonValue的关联 - ShineLe - 博客园
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性