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 ...
随机推荐
- Mac中显示及隐藏文件和文件夹的方法
一.方法一 直接在文件或文件夹名前面的加一个'.'点号,然后系统会弹出修改确认对话框,点好就行了. 隐藏文件 解除隐藏可以通过方法三显示所有隐藏文件,找到该文件去掉开头的'.',然后通过方法二来解除隐 ...
- kubernetes之kubeadm 安装kubernetes 高可用集群
1. 架构信息 系统版本:CentOS 7.6 内核:3.10.0-957.el7.x86_64 Kubernetes: v1.14.1 Docker-ce: 18.09.5 推荐硬件配置:4核8G ...
- 【第十三期】B站后端开发实习生一、二面经
写在最前:非科班渣硕去年转码一年,不是什么大佬,纯小白(go语言开发). 一面(大概70min) 首先是自我介绍.(比较传统,就是描述下自己的技术栈) 线程和进程的关系. 线程之间如何进行通信. 死锁 ...
- CodeForces 摆烂寄录
按订正顺序排序 现在是乱排的了 完整代码占版面 所以只放 AC 记录链接 Good Bye 2021: 2022 is NEAR 这场打得真拉/tuu A. 简单签到 开场就读错题,浪费 5min / ...
- AtCoder AGC002 简要题解
从今天开始,联赛之前大约要完成前 \(20\) 套 \(\rm AGC\),希望不要鸽. A 略 B 感觉这题比 \(\rm C\) 题难. 考虑对于每个时刻维护每个位置是否可能出现红球,那么一个时刻 ...
- open policy agent 语法总结
OPA 文档模型 OPA将从外部加载的数据成为基本文档(base documents),有规则产生的值成为虚拟文档(virtual documents),此处"虚拟"的意思表示文档 ...
- Eclipse不能启动,提示:The Eclipse executable launcher was unable to locate its companion launcher jar
原因分析:JDK版本与eclipse不匹配 如jdk和eclipse版本号必须统一,64位都是64位,32位都是32位. jdk版本可以用命令,cmd进入命令窗口,然后输入java -version, ...
- DockerClient端与DockerDaemon的通信安全
DockerClient端与DockerDaemon的通信安全 容器的安全性问题的根源在于容器和宿主机共享内核.如果容器里的应用导致Linux内核崩溃,那么整个系统可能都会崩溃.与虚拟机是不同的,虚拟 ...
- Centos8安装virtualbox
一.执行以下命令并启用 VirtualBox 和 EPEL 包仓库 dnf config-manager --add-repo=https://download.virtualbox.org/virt ...
- HTTP缓存小结
介绍 提到页面优化,浏览器缓存必定是一个绕不过的话题,判断一个网站的性能最直观的就是看网页打开的速度,而提高网页反应速度的一个方式就是使用缓存.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟, ...