当前位置: 首页 > news >正文

携程网站建设进度及实施过程佛山疫情最新消息

携程网站建设进度及实施过程,佛山疫情最新消息,哪个网站做的win10系统好,牡丹江疫情最新政策一.前言: JSON是一种轻量级数据交换格式,常用于客户端和服务端的数据交互,不依赖于编程语言,在很多编程语言中都可以使用JSON,比如C,C,Java,Android,Qt。除了JSON&#x…

一.前言:
JSON是一种轻量级数据交换格式,常用于客户端和服务端的数据交互,不依赖于编程语言,在很多编程语言中都可以使用JSON,比如C,C++,Java,Android,Qt。除了JSON,还有一种数据传输格式XML,相较于XML,JSON更加便于阅读和书写。
JSON 有两种数据格式:JSON对象和JSON数组。被中括号包裹的是JSON数组,被大括号包裹的是JSON对象。

二.JSON数组:
JSON数组的格式:[元素1,元素2,元素3,…]
示例1:元素可以是不同数据类型

[1,2,3.14,"hello world",true,null]

示例2:元素可以是JSON对象或JSON数组

[{"id":123,"name":"tom"},[1,2,3.14,"hello world",true,null]
]

三.JSON对象:
JSON对象的格式:一个或多个键值对组成
示例1:

{"id":123,"name":"tom"
}

示例2:嵌套JSON对象和JSON数组,JSON对象和JSON数组也要使用键值对格式

{"name": "John Doe","age": 30,"address": {"city": "New York","street": "123 Main St"},"phoneNumbers": [{"type": "home","number": "555-1234"},{"type": "work","number": "555-5678"}],"hobbies": ["reading", "painting", "playing guitar"],"isStudent": true
}

小结:JSON数组里可以包含JSON对象或JSON数组,JSON对象里也可以嵌套JSON对象或JSON数组。

四.Qt中JSON的使用:1.生成JSON数据、2.解析JSON数据
在QT5.0版本以后支持对JSON的使用,QT5.0之前需要自己集成第三方库。
1.生成JSON数据
要生成的JSON数据如下:

{"name": "小王","age": 30,"address": {"city": "北京","street": "人民路32号"},"phoneNumbers": [{"number": "999-123456","type": "家"},{"number": "999-654321","type": "公司"}]
}

使用Qt生成上面的JSON数据:

#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
#include <QDebug>
void MainWindow::writeJSON()
{// 创建最外层的 JSON 对象,里面包含要构建的所有 JSON 数据QJsonObject rootObj;// 插入 name 键值对到 rootObjrootObj.insert("name","小王");// 插入 age 键值对到 rootObjrootObj.insert("age",30);// 创建地址 JSON 对象,里面包含两个键值对QJsonObject addressObj;addressObj.insert("city","北京");addressObj.insert("street","人民路32号");// 插入地址 JSON 对象到 rootObjrootObj.insert("address",addressObj);// 创建电话 JSON 数组,里面包含两个电话 JSON 对象QJsonArray phoneArray;// 创建两个电话 JSON 对象QJsonObject phoneHomeObj;phoneHomeObj.insert("type","家");phoneHomeObj.insert("number","999-123456");QJsonObject phoneWorkObj;phoneWorkObj.insert("type","公司");phoneWorkObj.insert("number","999-654321");// 在电话 JSON 数组中添加两个电话 JSON 对象phoneArray.append(phoneHomeObj);phoneArray.append(phoneWorkObj);// 插入电话 JSON 数组到 rootObjrootObj.insert("phoneNumbers",phoneArray);// 将 rootObj JSON对象转换为 JSON 数据格式QJsonDocument doc(rootObj);QByteArray json = doc.toJson();// 打印qDebug()<<QString::fromUtf8(json);
}

2.解析JSON数据
要解析的JSON数据如下,先将它放在test.json文本文件中:

{"name": "小王","age": 30,"address": {"city": "北京","street": "人民路32号"},"phoneNumbers": [{"number": "999-123456","type": "家"},{"number": "999-654321","type": "公司"}]
}

使用Qt解析上面的JSON数据:

#include <QJsonObject>
#include <QJsonArray>
#include <QJsonDocument>
#include <QDebug>
#include <QFile>
void MainWindow::analyseJSON()
{// 读取文本中的 JSON 数据QFile file("C:\\Users\\A\\Desktop\\temp\\test.json");file.open(QFile::ReadOnly);QByteArray json = file.readAll();file.close();// 将 JSON 数据转换为 QJsonDocument 对象QJsonDocument doc = QJsonDocument::fromJson(json);if(!doc.isObject()){// 不是 JSON 对象:JSON 字符串格式错误或无效qDebug()<<"不是 JSON 对象:JSON 字符串格式错误或无效";return;}// 将 QJsonDocument 对象中的 JSON 数据转换为 JSON 对象QJsonObject obj = doc.object();// 获取 JSON 数据中的所有键QStringList keys = obj.keys();// 遍历键值对for (int i = 0;i<keys.size();++i) {// 获取每一个 keyQString key = keys[i];// 通过 key 获取对应的 valueQJsonValue value = obj.value(key);if(value.isBool()){// 值是一个 boolqDebug()<<key<<":"<<value.toBool();}else if(value.isString()){// 值是一个字符串qDebug()<<key<<":"<<value.toString();}else if(value.isDouble()){// 值是一个 double 或者 int(double 和 int 都用 isDouble)qDebug()<<key<<":"<<value.toInt();}else if(value.isObject()){// 值是一个 JSON 对象qDebug()<<key<<":";// 这里偷个懒,不再像上面那样循环获取值了,而是直接通过已知的键去获取值QJsonObject addressObj = value.toObject();QString city = addressObj["city"].toString();QString street = addressObj["street"].toString();qDebug()<<"  "<<"city:"<<city;qDebug()<<"  "<<"street:"<<street;}else if (value.isArray()){// 值是一个 JSON 数组qDebug()<<key<<":";QJsonArray phoneArray = value.toArray();for (int i = 0;i<phoneArray.size();++i) {// 遍历 JSON 数组中的每一个 JSON 对象QJsonObject phoneObj = phoneArray[i].toObject();QString number = phoneObj["number"].toString();QString type = phoneObj["type"].toString();qDebug()<<"  "<<"number:"<<number;qDebug()<<"  "<<"type:"<<type;}}}
}
http://www.hkea.cn/news/794339/

相关文章:

  • 如何网站开发1688网站
  • 丽水专业网站建设价格青岛网站优化
  • 网站开发专业培训学校百度推广登录官网入口
  • 贵阳做网站公司网站热度查询
  • 做课件最好的素材网站考拉seo
  • 网站建设玖首选金手指seo网站优化收藏
  • 台州卓远做网站好不好广州seo教程
  • dz网站数据备份bt磁力猪
  • github 可以做网站吗360seo
  • 杭州 企业门户网站建设爱链
  • dj那个网站做的好长沙公司网络营销推广
  • 设计师培训招生视频黑帽seo联系方式
  • 做网上贸易哪个网站好西宁网站seo
  • 电子烟网站建设杯子软文营销300字
  • 广州企业网站制作怎么做营销推广
  • 网站建设服务器在香港郑州网站建设专业乐云seo
  • 河北建设工程交易信息网海口关键词优化报价
  • 全国网站建设公司有多少家微信朋友圈广告投放收费标准
  • 免费做网站公司黑帽seo排名技术
  • apk连接wordpress上海seo
  • 企业建网站租用服务器好还是买一个好石家庄网站关键词推广
  • wordpress文件解析外贸网站优化
  • 建设工程竣工备案网站百度保障中心人工电话
  • 韶关城乡建设部网站首页营销型网站建设策划书
  • 建设银行手机银行下载官方网站谷歌浏览器网页版入口在哪里
  • 网站建设 好域名注册信息
  • 公众号微网站建设认证哪个推广网站好
  • 爬取1024上传到wordpress蔡甸seo排名公司
  • 流感吃什么药更好seo的方法
  • 营销型网站建设市场seo黑帽技术有哪些