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 ...
随机推荐
- 数据库查询语句遇到:Unknown column 'XXXX' in 'where clause'解决方法
数据库查询语句遇到:Unknown colunm 'XXX' in 'where clause'解决方法 根本原因:可能是sql语句所用到的数据类型错误(int与String)弄错- 我的情况: 在网 ...
- 好用的 NPL 词库分类。
## 好用的 NPL 词库分类. 专业的词库分类技术. 主要服务于金融领域的词库划分. 上图!对比一下我们的分词和jie等模型的效果.做的就是专业!  { string sWebRootFolder = _hostingEnvironment.WebRootPath; strin ...
- Linux添加用户组和添加用户
1.用户组 添加组:groupadd 组名 [root@Server-n93yom ~]# groupadd dev [root@Server-n93yom ~]# cat /etc/group | ...
- springBoot工程解决跨域问题
更新:通过一个 @CrossOrigin 注解就可以完美解决跨域问题. 创建一个配置类 package com.miaoshaProject.configuration; import org.sp ...
- MASA Framework - DDD设计(1)
目录 MASA Framework - 整体设计思路 MASA Framework - EventBus设计 MASA Framework - MASA Framework - DDD设计(1) DD ...
- 05.python语法入门--垃圾回收机制
# (1)垃圾回收机制GC# 引用计数# x = 10 # 值10引用计数为1# y = x # 值10引用计数为2## y = 1000 # 值10引用计数减少为1# del x # 值 ...