以实战例子讲述JSON三兄弟的后续故事。

实战一:发送JSON网络请求

作为JSON老大哥的QJsonValue自知对面的大户人家妹子貌美如花,心里已经打起算盘,先下手为强,后下手遭殃。决定显示下自己的家底,想起这件事,老大哥回想到5年前错过的妹子,当时妹子说我们不适合,大哥问,我对你还不够好么。但妹子说了一句让老大哥彻底伤心的话。做我的男朋友要有QQ会员,可惜你不是

老大哥找了QNetworkAccessManager以json的方式发送自己的QQ会员和账号,以表明自己的诚意。

QJsonArray jsonArray;
jsonArray<<1<<2<<3;QJsonObject jsonObject;
jsonObject["account"] = "xxxxx";
jsonObject["vip"] = "8";
jsonObject["array"] = jsonArray;QNetworkAccessManager manager;
QNetworkRequest request(QUrl("https://www.example.com"));
request.setRawHeader("Content-Type", "application/json");QNetworkReply* reply = manager.post(request, QJsonDocument(jsonObject).toJson());
QEventLoop eventLoop;
QObject::connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
eventLoop.exec(); // 进入等待返回,但ui事件循环依然进行。QByteArray result = reply->readAll();
qDebug()<<result;

躲着墙角的二哥QJsonObject看到了老大哥的一举一动,暗暗窃喜,还好我也是QQ会员,于是在发送数据处做了些小修改以彰显自己的QQ会员等级。

QNetworkReply* reply = manager.post(request, R"({"account": "xxxxx","vip": "8","array": [1, 2, 3]})");

看起来简单明了,妹子肯定是我的了。二哥,心里暗暗窃喜。

螳螂捕蝉黄雀在后,三弟QJsonArray手拿银子默念,大哥和二哥都不让下弟弟的,尽是QQ会员,还好我不赖,昨天问了爹爹拿钱充了vip8。三弟也发自己的QQ会员过去了,只是方式略有个性。

QNetworkReply* reply = manager.post(request, "{"account":"xxxxx","vip":"8","array":[1,2,3]}");

三兄弟按照昨天约定的时间到村口客栈见面。看到妹子赶紧走上前表示自己的QQ会员等级有多高,大哥还没说出话来就被大妹子打断了,说你装载JSON数据麻烦!转头又说二哥虽然简洁,但过于占地方。三弟自然看到面前这么凶恶的妹子,自然不敢说话低着头说,数据反斜杠转义过多,不利于数据操作。

三兄弟非常灰心,原来QQ会员也帮不到我了。

实战二:读写json格式的配置文件

老大哥垂头丧气说,QQ会员也没有用了呀,仍了可惜,不如我们埋了它,当是埋葬我们逝去的青春。二哥三弟听后感动得不要不要的,就赶紧拿了家里祖传的铲子挖泥了。他们将QQ信息放()在一个叫config.json的酒壶里。

QJsonObject jsonObject;
jsonObject["account"] = "xxxxx";
jsonObject["password"] = "xxxxx"
jsonObject["vip"] = "8";
QJsonArray jsonArray { 1, 2, 3 };jsonObject["array"] = jsonArray;
QFile file("config.json");
if (! file.open(QIODevice::WriteOnly)) {qDebug()<<"文件打开失败。";return false;
}QByteArray data = QJsonDocument(jsonObject).toJson();
file.write(data);
file.close();

一天晚上管家拿着铲子在挖泥,手里捧着他们三兄弟前几天放的青春。管家碎碎念说了一句,终于拿到你们的QQ了,还是会员。

QFile file("config.json");
if (! file.open(QIODevice::ReadOnly)) {qDebug()<<"文件打开失败。";return false;
}QByteArray data = file.readAll();
QJsonParseError jsonError;
QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &jsonError);
if (jsonError.error != QJsonParseError::NoError) {qDebug()<<"Json文件解析错误。";return false;
}if (jsonDoc.isObject()) {QJsonObject jsonObject = jsonDoc.object();qDebug()<<jsonObject;
}
else if (jsonDoc.isArray()) {QJsonArray jsonArray = jsonDoc.array();qDebug()<<jsonArray;
}
else {qDebug()<<"Json文件解析为空。";
}file.close();


  • 文章首发于微信公众号:Qt君

下载 嵌入式qt实战教程pdf_Qt之JSON教程-实战篇相关推荐

  1. 关于嵌入式 Qt 最全最棒的教程(万字干货)

    重要: 本文摘自致远电子出品书籍<嵌入式Linux开发教程>,本教程凝聚了ZLG致远电子嵌入式工程师的心血,任何形式的转载请务必标注此段文字!!! 整理排版:付斌,来源:ZLG致远电子,作 ...

  2. php 使用json 教程,PHP使用JSON 教程

    JSON 基础 简 单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务 ...

  3. python嵌入式开发实战_嵌入式Qt实战教程 PDF 高清版

    给大家带来的一篇关于嵌入式相关的电子书资源,介绍了关于嵌入式.Qt实战方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小43.4 MB,陈志发,王苑增编写,目前豆瓣.亚马逊.当当.京东等电 ...

  4. Qt之JSON教程-实战篇

    以实战例子讲述JSON三兄弟的后续故事. 实战一:发送JSON网络请求   作为JSON老大哥的QJsonValue自知对面的大户人家妹子貌美如花,心里已经打起算盘,先下手为强,后下手遭殃.决定显示下 ...

  5. VS+Qt — Vistual Studio 2022+Qt6安装教程以及解决Qt Vistual Studio Tools下载慢和VS无法打开.ui进行设计的问题

    目录 Vistual Studio 2022下载 Qt下载 Qt Vistual Studio Tools下载 方法1 方法2 方法3 方法4 Vistual Studio 2022配置Qt6 创建Q ...

  6. 飞腾嵌入式A40,与电脑上虚拟机连接,下载运行QT程序步骤记录。

    飞腾嵌入式A40,与电脑上虚拟机连接,下载运行QT程序步骤记录. 需要安装4个软件: 虚拟机软件:一路下一步安装 终端软件:可以连接A40输入命令行,一路下一步安装 传文件软件:一路下一步安装 虚拟机 ...

  7. 四年嵌入式技术沉淀,处女作《STM32CubeMX系列实战教程》诞生

    上百篇原创人工智能系列教程,从理论到实战,手把手带你掌握人工智能,点击☞这里☜进入传送门~ 秒变 STM32 大神,STM32CubeMX你值得拥有! 本教程共包含 20 篇文章,手把手带你学会用 S ...

  8. 深度实践嵌入式linux系,深度实践嵌入式Linux系统移植 完整pdf_操作系统教程_源雷技术空间...

    资源名称:深度实践嵌入式Linux系统移植 完整pdf 第1章嵌入式系统架构与移植环境搭建2 第2章u-boot工程与编译系统14 第3章u-boot启动流程分析41 第4章ARM9/S3C2440 ...

  9. 在 Ubuntu Linux 上从源代码构建 Qt 6.2.2的简短教程

    Qt 6.2.0 是 Qt 6 系列的第3个版本,功能与 Qt 5 相当,因此有望成为第一个被新 Qt 项目或从 Qt 5 移植的项目广泛采用的版本.在这篇文章中我提供有关在 Ubuntu Linux ...

最新文章

  1. MIT将AI引入中学课堂,除了设计AI系统,还要学生思考背后的伦理
  2. BZOJ 1488 Luogu P4727 [HNOI2009]图的同构 (群论、Burnside引理、组合计数)
  3. 百度:病种类贴吧全面停止商业合作
  4. 海量数据随机抽样问题(蓄水池问题)
  5. 服务器同时登入会被挤下来吗_「英雄联盟手游」苹果iOS版LOL日服公测,日本服务器卡爆!...
  6. C#高效编程话题集1(每期10话题)
  7. 新基建带来新机遇!大数据产业发展需“四驱”推动
  8. document.compatMode
  9. 将美化进行到底,把 PowerShell 做成 oh-my-zsh 的样子
  10. CodeForces 622A--F - Infinite Sequence
  11. [JAVA]jodd-mail java发送接收电子邮件
  12. sqlalchemy用in_ 批量delete
  13. docker部署showdoc
  14. Linux使用进程id跟踪程序,使用linux的pidof命令返回运行程序的进程ID
  15. CCF CSP认证201509-1数列分段
  16. PGSQL 模糊查询不区分大小写
  17. Boost(一)——Boost简介
  18. 代码实现全局消息钩子SetWindowsHookExA监视按键记录
  19. 【机器人学、机器视觉与控制】用工具箱确定D-H参数
  20. 信号完整性问题及其解决方法

热门文章

  1. 接口 EnvironmentAware
  2. controller调用controller的方法_SpringBoot 优雅停止服务的几种方法
  3. python单向链表和双向链表的图示代码说明
  4. html 圆环实现多种颜色,SVG实现多彩圆环倒计时效果的示例代码
  5. 如何做相册_手机里的照片太多,不得已只能删除?那就试试制作电子相册吧
  6. Go语言之进阶篇http服务器获取客户端的一些信息
  7. ES6箭头函数(节选自《ECMAScript 6 入门》)
  8. 工厂方法模式及php实现
  9. codeforces 303 div2 E
  10. 关于html标签元素的data-*属性