Qt:QJsonObject
0、说明
QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法、说明很有帮助。
QJsonObject类封装了JSON Object。
JSON Object是一个Key-Value对,Key是string,而Value是QJsonValue。
QJsonObject与QVariantMap间可以互相转化。可以通过调用size()来查询K-V对的数量。通过insert()、remove()来从中移除K-V对。
QJsonObject是个隐含共享类,与创建它的Document共享数据。
可以从JSON文本文件中通过QJsonDocument转换得到QJsonObject,也可以进行相反的操作把QJsonObject转为QJsonDocument。
1、模块和加载项
Header: | #include <QJsonObject> |
qmake: | QT += core |
Since: | Qt 5.0 |
2、构造
QJsonObject(QJsonObject other) | 返回另一个QJsonObject的副本 |
QJsonObject(List<QPair<QString, QJsonValue> > args) | 通过初始化List构造QJsonObject:
QJsonObject object |
QJsonObject() | 构造空QJsonObject |
3、静态字段
class | const_iterator | |
class | iterator | |
typedef | ConstIterator | |
typedef | Iterator | |
typedef | key_type | |
typedef | mapped_type | |
typedef | size_type |
3、静态方法
返回值类型 |
方法 |
说明 |
QJsonObject | fromVariantHash(QVariantHash hash) | 将一个QVariantHash转化为QJsonObject |
QJsonObject | fromVariantMap(QVariantMap map) | 将一个QVariantMap转化为QJsonObject |
4、实例方法
返回值类型 |
方法 |
说明 |
QJsonObject bool bool QJsonValue |
operator=(QJsonObject other) operator!=(QJsonObject other) operator==(QJsonObject other) operator[](QString key) |
赋值 不相等判断 相等判断 取Key对应的Value |
QJsonObject::iterator | begin() | STL样式的迭代器,指向Object的首项 |
bool |
contains(QString key) contains(QStringView key) |
Object中是否包含Key key |
int | count() | 等同于size(),有多少个K-V对 |
bool | empty() | 是否为空 |
QJsonObject::iterator | end() | STL样式的迭代器,指向Object的末尾 |
QJsonObject::iterator | erase(QJsonObject::iterator it) | 移除迭代器it指向的K-V对 |
QJsonObject::iterator |
find(QString key) find(QStringView key) find(QStringView key) |
返回迭代器指向的一个Key为key的项 |
QJsonObject::iterator |
insert(QString key, QJsonValue value) insert(QStringView key, QJsonValue value) |
插入一个新key-value对 |
bool | isEmpty() | 是否为空 |
QStringList | keys() | 所有Key构成的List |
int | length() | 等同于size(),有多少个K-V对 |
void |
remove(QString key) remove(QStringView key) |
移除Key为key的K-V对 |
int | size() | 有多少个K-V对 |
void | swap(QJsonObject &other) | 交换两个QJsonObject |
QJsonValue |
take(QString key) take(QStringView key) |
从QJsonObject中移除Key为key的K-V对 |
QVariantHash | toVariantHash() | 将QJsonObject转换为QVariantHash |
QVariantMap | toVariantMap() | 将QJsonObject转换为QVariantMap |
QJsonValue |
value(QString key) value(QStringView key) |
提取Key对应的Value |
6、常用
1)提取QJsonObject中某个Key对应的Value:QJsonObject[ key ] 或 QJsonObject.value( key )
7、QJsonValue、QJsonArray、QJsonObject、QJsonDocument之间的关联
Qt:QJsonDocument以及与QJsonArray、QJsonObject、QJsonValue的关联 - ShineLe - 博客园
Qt:QJsonObject的更多相关文章
- Qt:QJsonDocument以及与QJsonArray、QJsonObject、QJsonValue的关联
0.说明 QJsonDocument类提供了read/write JSON文档的方法. 用QJsonDocument::fromJson()方法,可以从将一个JSON文件(或者QByteArray数据 ...
- Qt:QJsonValue
0.说明 QJsonValue类用于操作JSON中的各种数据. JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型: 基本类型 存储类型 bool QJsonValue::Bool d ...
- Qt:QJsonArray
0.说明 QJsonArray中存储了一系列的QJsonValue.可以向其中插入.删除QJsonValue. 一个QJsonArray可以与QVariantList互相转换.可以通过size()访问 ...
- Qt:禁止qDebug的输出
Qt:禁止qDebug的输出 在工程的.pro文件里加上以下编译批令即可: DEFINES += QT_NO_DEBUG_OUTPUT
- Qt:使用自定义的字体
Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体 QFontDatabase::addApplicationFont("XENOTRON.TTF" ...
- Qt:QUrl构造时的qrc前缀
参考(按对我帮助从大到小排列): Qt内的各种路径(让人迷惑) - 鬼谷子com - 博客园 qt webengineview 加载本地资源方式 - beautifulday - 博客园 (17条消息 ...
- Qt:基于TCP和UDP的局域网P2P(局域网)通讯封装
封装了一个类,可以进行在局域网进行P2P通讯(仅局域网可用) 也就是说,假设局域网中有10台电脑,那么从本机发出的数据,将依次派发到这10台电脑(目前的设计中包括自己这台) 在使用方面,构造的时候给端 ...
- QT:用QWebSocket实现webchannel,实现C++与HTML通信
基本原理是通过channel将C++对象暴露给HTML,在HTML中调用qwebchannel.js.前提是建立transport,QT只提供了一个抽象基类QWebChannelAbstractTra ...
- Qt:正则表达式语法:
正则表达式是验证输入.从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式; Qt 提供了一个Q ...
随机推荐
- CSS八种让人眼前一亮的HOVER效果
一.发送效果 HTML <div id="send-btn"> <button> // 这里是一个svg的占位 Send </button> & ...
- MySQL运维开发之路
MySql h1 { color: rgba(0, 60, 128, 1); text-align: center } h1:hover { color: rgba(0, 255, 111, 1) } ...
- python基础详解
python基础部分 python基础一 python基础二 Python最详细,最深入的代码块小数据池剖析 深浅copy python文件操作 python函数部分 python函数初识 pytho ...
- python 中 *args he **kwargs的区别
''' 一 *args 和 **kwargs 的区别? *args 表示任意个 无名参数, 类型是元祖 tuple. **kwargs 表示的是关键字的参数 传入的参数是 dict 类型. 当*和** ...
- Linux下的5种I/O模型与3组I/O复用
引言 上一篇文章中介绍了一些无缓冲文件I/O函数,但应该什么时机调用这些函数,调用这些I/O函数时进程和内核的行为如何,如何高效率地实现I/O?这篇文章就来谈一谈Linux下的5种I/O模型,以及高性 ...
- Tomcat临时目录及java.io.tmpdir对应的目录
最近客户现场的技术支持接连反馈了一个问题:导入数据的时候,上传的excel会在服务器上生成一个临时文件,而这个临时文件都在 tomcat 的安装目录下,如果上传次数比较多的话,就会导致tomcat安 ...
- MySQL server has gone away 异常
原因 一种可能是发送的SQL语句太长,以致超过了max_allowed_packet的大小,如果是这种原因,你只要修改my.cnf,加大max_allowed_packet的值即可. 还有一种可能是因 ...
- shell基础——数组
定义数组 #小括号,空格 arr=(v1 v2 v3) arr=(`ls`) 打印数组 echo ${arr[0]} #下标从0开始 echo ${arr[*]} #整个数组 echo ${arr[@ ...
- 按照递推的思想求解next[]数组
按照递推的思想求解next[]数组 根据定义next[0]=-1,假设next[j]=k, 即P[0...k-1]==P[j-k,j-1] 若P[j]P[k],则有P[0..k]P[j-k,j],很显 ...
- pycharm关闭pytest
在pycharm中,如果py文件以 test 开头,则运行时会使用pytest执行,pycharm关闭pytest方式如下 File -> Settings -> Tools -> ...