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 - 博客园
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性