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 - 博客园

最新文章

  1. 转@ManyToMany- annotation关系映射篇(下)
  2. jQuery源码解读-事件分析
  3. spring第一课,beans配置(上)
  4. 借助LinkedHashMap实现基于LRU算法缓存
  5. Oracle 常用数据类型(转)
  6. hdu 5779 Tower Defence
  7. 小记:事务(进程 ID 56)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。
  8. JavaScript高级程序开发3笔记
  9. SOAP详解
  10. 关于MSHTML
  11. 使用JDom解析XML文档模拟Spring的配置文件解析
  12. ubuntu16.04安装kde桌面出错: /var/cache/apt/archives/kde-config-telepathy-accounts_4%3a15.12.3-0ubuntu1_amd64.deb
  13. springboot 热部署 idea版本(转)
  14. C语言作业评价标准
  15. #2019-2020-4 《Java 程序设计》第九周总结
  16. 微信小程序-下拉松开弹不回去顶部留一段空白
  17. 浅谈FFT、NTT和MTT
  18. hadoop发行版本之间的区别
  19. CCF CSP 201509-3 模板生成系统
  20. day1-exercise

热门文章

  1. Protobuf 动态加载 .pb 文件并操作 Message
  2. Openfeign与Ribbon
  3. Spring中事务管理的两种方式
  4. js实现网页回弹小球效果
  5. 二进制安装tomcat
  6. LVS调度算法总结
  7. 微服务从代码到k8s部署应有尽有系列(二、网关)
  8. Solution -「CTS 2019」「洛谷 P5404」氪金手游
  9. Solution -「USACO 2020.12 P」Spaceship
  10. 我们一起来学Shell - shell的条件判断