Qt json使用
JSON 6 种基本数据类型
QJsonValue::Bool
QJsonValue::Double
QJsonValue::String
QJsonValue::Array
QJsonValue::Object
QJsonValue::Null
JSON 常用类
QJsonDocument //JSON 文档
QJsonArray //JSON 数组
QJsonObject //JSON 对象
QJsonParseError //JSON 错误
JSON 对象
{
"name": "admin",
"age": 30
}
构建
//构建 JSON 对象
QJsonObject json;
json.insert("name", "admin");
json.insert("age", 30);
//构建 JSON 文档
QJsonDocument document;
document.setObject(json);
QByteArray byteArray = document.toJson(QJsonDocument::Compact);
解析
QJsonParseError jsonError;
QJsonDocument doucment = QJsonDocument::fromJson(byteArray, &jsonError); // 转化为 JSON 文档
if (!doucment.isNull() && (jsonError.error == QJsonParseError::NoError)) { // 解析未发生错误
if (doucment.isObject()) { // JSON 文档为对象
QJsonObject object = doucment.object(); // 转化为对象
if (object.contains("name")) { // 包含指定的 key
QJsonValue value = object.value("name"); // 获取指定 key 对应的 value
if (value.isString()) { // 判断 value 是否为字符串
QString strName = value.toString(); // 将 value 转化为字符串
qDebug() << "name : " << strName;
}
}
if (object.contains("age")) { //key判断无先后顺序
QJsonValue value = object.value("age");
if (value.isDouble()) {
int age = value.toVariant().toInt();
qDebug() << "age : " << age;
}
}
}
}
JSON 数组
[
"admin",
30,
]
构建
// 构建 JSON 数组
QJsonArray json;
json.append("admin");
json.append(30);
// 构建 JSON 文档
QJsonDocument document;
document.setArray(json);
QByteArray byteArray = document.toJson(QJsonDocument::Compact);
解析
QJsonParseError jsonError;
QJsonDocument doucment = QJsonDocument::fromJson(byteArray, &jsonError);
if (!doucment.isNull() && (jsonError.error == QJsonParseError::NoError)) {
if (doucment.isArray()) {
QJsonArray array = doucment.array();
int size = array.size(); // 获取数组大小
for (int i = 0; i < size; i++) { // 遍历数组
QJsonValue value = array.at(i);
if (value.type() == QJsonValue::String) {
QString strName = value.toString();
qDebug() << strName;
}
if (value.type() == QJsonValue::Double) {
double age = value.toDouble();
qDebug() << age;
}
}
}
}
Qt json使用的更多相关文章
- QT json字符串生成和解析
1 QT json字符串生成和解析 1.1 QT Json解析流程 (1) 字符串转化为QJsonDocument QJsonParseError json_error; QJso ...
- Qt JSON解析生成笔记(把JSON转成一个类对象)
对于这样一段json { "name": "布衣食", "gender": "Male", "age" ...
- Qt JSON解析生成笔记
对于这样一段json { "name": "布衣食", "gender": "Male", "age" ...
- QT json数据的应用(cJSON)
json数据可保存小量的数据在本地的json文件中.QT有两种方式操作:(1).cJSON (2).QT的操作json数据的类. 应用:将监控预案数据保存在本地中. 1.首先根据预案结构创建一个jso ...
- Qt json 数据处理
用到的头文件 #include <QJsonArray> #include <QJsonDocument> #include <QJsonObject> json解 ...
- Qt+json
Json文件是这样: { "first fruit": { "describe":"an apple", "icon": ...
- qt json操作
json文件结构形式 { "xiao1": [ { "000100": { " ...
- Qt之JSON生成与解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December ...
- 【转载】Qt之JSON生成与解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December ...
随机推荐
- XSS-Stored
存储型XSS (持久性XSS) 将恶意JavaScript代码存储在数据库,当下次用户浏览的时候执行 Low <?php if( isset( $_POST[ 'btnSign' ] ) ) { ...
- C#基础表达式语句详解(上)
本节内容: 1.表达式的定义: 2.各类表达式概览: 3.语句的定义: 4.语句详解: 1.表达式的定义: 1.1什么是表达式: (定义见下图)各类编程语言对表达式的实现不尽相同,但大体上都符合这个定 ...
- 0x00 Wechall writeup
目录 0x00 Wechall writeup Training: Get Sourced Training: ASCII Encodings: URL Training: Stegano I Tra ...
- TensorFlow基础篇
Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算.TensorFlow的运行机制属于“定义”和“运行”相分离.模型的构建只是相当于定义了一个图结构(代表一个计算任务),图中有 ...
- [LeetCode] 916. Word Subsets 单词子集合
We are given two arrays A and B of words. Each word is a string of lowercase letters. Now, say that ...
- Python 爬取 13 个旅游城市,告诉你五一大家最爱去哪玩?
五一假期已经结束,小伙伴是不是都还没有玩过瘾?但是没办法,还有很多bug等着我们去写,同样还有需要money需要我们去赚.为了生活总的拼搏. 今年五一放了四天假,很多人不再只是选择周边游,因为时间充裕 ...
- 推荐一款年轻人交友软件get
推荐一款年轻人交友软件get 1 介绍 Get是一款认识新朋友的年轻人交友软件.接唱,发现有趣的声音,找到你的音缘.限时聊天,加入给你分配一个3分钟的对象,你们能不能碰撞出一点火花呢?推荐好友,扩列处 ...
- 写了此书《微软Azure实战参考》 北京航空航天大学出版社 2019年7月
经过大半年的努力,写出了此书<微软Azure实战参考> 北京航空航天大学出版社 2019年7月.喜爱微软云平台和需要使用微软云技术的读者,可以参考一下.
- Python2.x升级python3.x【升级步骤和错误总结】
网上帖子一大堆,按照那些教程操作,确实可以成功安装.但是安装成功之后呢,pip还是用的python2的pip. 切换到python3的pip之后,发现无法下载模块,还会有很多报错信息.以及" ...
- Oracle 自定义函数实现列转行效果
在 Oracle 领域,我相信一说到列转行大部分人都会立马想到 WM_CONCAT 函数,我觉得主要是因为该函数比较实用.但事实上 WM_CONCAT 并非官方公开函数,使用会存在一定的风险:函数返回 ...