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

Qt:QJsonArray的更多相关文章

  1. Qt:QJsonDocument以及与QJsonArray、QJsonObject、QJsonValue的关联

    0.说明 QJsonDocument类提供了read/write JSON文档的方法. 用QJsonDocument::fromJson()方法,可以从将一个JSON文件(或者QByteArray数据 ...

  2. Qt:QJsonObject

    0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...

  3. Qt:QJsonValue

    0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...

  4. Qt:禁止qDebug的输出

    Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT

  5. Qt:使用自定义的字体

    Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体   QFontDatabase::addApplicationFont("XENOTRON.TTF" ...

  6. Qt:QUrl构造时的qrc前缀

    参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...

  7. Qt:正则表达式语法:

         正则表达式是验证输入.从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式;        Qt 提供了一个Q ...

  8. Qt:QT右键菜单

    Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中 http://wenku.baidu.com/view/c51cfb63cf84b9d528ea7a29.html h ...

  9. Qt:无标题栏无边框程序的拖动和改变大小

    From: http://blog.csdn.net/kfbyj/article/details/9284923 最近做项目遇到的问题,总结下. 有时候我们觉得系统的标题栏和按钮太丑太呆板,想做自己的 ...

随机推荐

  1. Redis入门及环境搭建

    一:Redis简介 Redis(Remote Dictionary Server 远程字典服务)是一个开源的(BSD许可的)内存数据结构存储,用作数据库.高速缓存和消息队列代理. Redis提供五大基 ...

  2. HTTP状态码1XX深入理解

    前段时间看了<御赐小仵作>,里面有很多细节很有心.看了一些评论都是:终于在剧里能够看到真正在搞事业.发了工资第一时间还钱的正常人了.我印象比较深的是王府才能吃上的葡萄.觉得非常合理.剧里说 ...

  3. numpy常用函数记录

    np.square() 函数返回一个新数组,该数组的元素值为源数组元素的平方. 源阵列保持不变. 示例: import numpy as np a = np.array([[1, 2, 3], [4, ...

  4. CSS之创意hover效果

    一.发送效果 HTML <div id="send-btn"> <button> // 这里是一个svg的占位 Send </button> & ...

  5. nginx开发:ngx_sprintf

    格式化参数%系列,如果误用的话,轻则输出不正确,重则nginx可能core. 1. 格式: %{格式描述}{输出类型描述}{数据类型描述} 2. 数据类型描述: V:字符串,对应ngx_str_t * ...

  6. Cocos2d-JS环境配置教程

    最近感觉还有时间,就在CSDN上再写一篇,顺便把一些错误纠正,下面开始正文,这里的Cocos2d-JS是3.0版本.这里环境配置还是有一些坑的,希望可以帮到看博客的你. 一.准备工作 1.安装pyth ...

  7. java run()方法无法throws 异常

    感谢大佬:https://blog.csdn.net/z_ssyy/article/details/95345205 其实原因很简单,run()方法是我们调用start()方法后,jvm再去调用run ...

  8. Java线程--ForkJoinPool使用

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11871099.html Java线程--ForkJoinPool使用 简单解释下: Fork是 ...

  9. 将自己的web应用发布到Tomcat

    方法一:(用这个方法最好先把ROOT文件夹备份好,不建议使用) 1,打开tomcat 的目录,在webapps 的目录下, 把命名为ROOT 的文件夹删掉, 然后把自己的war 包更名为 ROOT.w ...

  10. 框架4--NFS网络共享

    目录 框架4--NFS网络共享 1.练习 2.昨日问题 3.今日内容 4.NFS简介 5.NFS应用 6.NFS实践 6.1.服务端 6.2.客户端 7.NFS配置详解 8.搭建考试系统 8.1.搭建 ...