Qt:QJsonValue
0、说明
QJsonValue类用于操作JSON中的各种数据。
JSON是用于存储结构化数据的格式,JSON中的数据可以是六种类型:
基本类型 |
存储类型 |
| bool | QJsonValue::Bool |
| double | QJsonValue::Double |
| string | QJsonValue::String |
| array | QJsonValue::Array |
| object | QJsonValue::Object |
| null | QJsonValue::Null |
这六种类型就能代表任何程序中的类型了。除此之外,QJsonValue还有一个特殊的标签用于指代未定义变量,通过isUndefined()查看这个标签。
值的类型通过type()查看,或者直接用isBool()、isString()、...进行判断。同时,JSON中的值通过toBool()、toString()、...转化为程序中的类型。
数值类型是内部严格对应的,不同于QVariant,QJsonValue并不会做隐含的强制转型。这意味着转换一个不存在于Value的类型会返回一个默认类型的Value。
1、模块和载入项
| Header | #include<QJsonValue> |
| qmake | QT += core |
| Since | Qt 5.0 |
2、构造
| QJsonValue(QJsonValue other) |
| QJsonValue(QJsonObject o) |
| QJsonValue(QJsonArray a) |
|
QJsonValue(var s) var可以是char、QString、qint64、double、bool |
3、静态方法
| QJsonValue | fromVariant(QVariant variant) |
4、实例方法
返回值类型 |
方法 |
说明 |
|
QJsonValue & bool bool QJsonValue QJsonValue |
operator=(QJsonValue other) operator!=(QJsonValue other) operator==(QJsonValue other) operator[](QString key) operator[](int i) |
赋值 判断是否不等 判断是否相等 可以用 [i]的方式提取元素 |
| bool |
isArray() isBool() isDouble() isNull() isObject() isString() |
类型判断 |
| void | swap(QJsonValue &other) | 交换两个QJsonValue的值 |
| QJsonArray |
toArray(QJsonArray defaultValue) toArray() |
QJsonValue转换为QJsonArray |
|
bool double int QJsonObject QJsonObject QString QString QVariant |
toBool(bool defaultValue = false) toDouble(double defaultValue = 0) toInt(int defaultValue = 0) toObject(QJsonObject defaultValue) toObject() toString() toString(QString defaultValue) |
QJsonValue转换为指定类型 |
| QJsonValue::Type | type() | QJsonValue中数据的类型 |
5、QJsonValue、QJsonArray、QJsonObject、QJsonDocument之间的关联
Qt:QJsonDocument以及与QJsonArray、QJsonObject、QJsonValue的关联 - ShineLe - 博客园
Qt:QJsonValue的更多相关文章
- Qt:QJsonObject
0.说明 QJsonObject在逻辑上就是一个Map或Dict!记住这一点对理解它的方法.说明很有帮助. QJsonObject类封装了JSON Object. JSON Object是一个Key- ...
- 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:QJsonDocument以及与QJsonArray、QJsonObject、QJsonValue的关联
0.说明 QJsonDocument类提供了read/write JSON文档的方法. 用QJsonDocument::fromJson()方法,可以从将一个JSON文件(或者QByteArray数据 ...
- Qt:正则表达式语法:
正则表达式是验证输入.从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式; Qt 提供了一个Q ...
- Qt:QT右键菜单
Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中 http://wenku.baidu.com/view/c51cfb63cf84b9d528ea7a29.html h ...
- Qt:无标题栏无边框程序的拖动和改变大小
From: http://blog.csdn.net/kfbyj/article/details/9284923 最近做项目遇到的问题,总结下. 有时候我们觉得系统的标题栏和按钮太丑太呆板,想做自己的 ...
随机推荐
- 学习Java第11天
今天所做的工作: 敲代码,按照教材进度,我已经"学完了",用引号引起来. 明天工作安排: 敲代码 所遇到的困难及解决方法: 虽然是"学完了",但真正写起来还是有 ...
- dp学习(二)
树和图上的dp. 4. 简单树形dp 这些是最为简单的树形dp. 一般来说,树形dp是通过子树的dp值推出当前点的dp值. 在这里,我们默认当前节点为u,它的儿子节点为v,树的根为rt. 例题4.1 ...
- 通俗讲解IP地址的端口
========================================================================================= 在我看来,学习jav ...
- AT2346 [ARC070B] No Need
这里介绍几种做法. 解法一 首先可以转化一下题意,\(\forall i\) 如果 \(i\) 不是可有可无的当且仅当不用 \(i\) 能拼出 \([K - a_i, K)\) 中的数. 基于观察可以 ...
- git 初始化本地项目并推送到远程
有一个新项目,开发了一些代码之后想推送到远程,具体的操作方式和命令如下: (使用 git bash) 1.切到项目目录中,例如 E:\git\smart-open 2.初始化git仓库并在本地提交 / ...
- Ajax不允许缓存方法
AJAX请求后台时会自动缓存,客户端发起请求首先请求缓存,第一次请求即由缓存再请求服务器,返回数据时同样先返回到缓存再展示再客户端.但是如果数据要求随时性呢,数据变化频率高呢?那么如何不让ajax设置 ...
- iOS 动画系列之动画解释
动画解释 译文 http://blog.jobbole.com/69111/ 原文 http://www.objc.io/issues/12-animations/animations-explain ...
- YOLOv5模型训练及检测
一.为什么使用YOLOv5 二.软件工具 2.1 Anaconda https://www.anaconda.com/products/individual 2.2 PyCharm https://w ...
- 面试官:谈谈你对IO流和NIO的理解
一.概念 NIO即New IO,这个库是在JDK1.4中才引入的.NIO和IO有相同的作用和目的,但实现方式不同,NIO主要用到的是块,所以NIO的效率要比IO高很多.在Java API中提供了两套N ...
- Solution -「HDU 1788」CRT again
\(\mathcal{Description}\) Link. 解同余方程组: \[x\equiv m_i-a\pmod{m_i} \] 其中 \(i=1,2,\dots,n\). \ ...