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

贵阳中企动力做的网站网站功能规划

贵阳中企动力做的网站,网站功能规划,用老薛主机做网站,社区团购app1.JSON的两种数据格式 JSON有两种数据格式:JSON对象和JSON数组 JSON数组: JSON数组格式:[元素1,元素2,元素3,......元素n] JSON数组中的元素可以是同一类型,也可以使不同类型,可以嵌套JSON数组…

1.JSON的两种数据格式

JSON有两种数据格式:JSON对象和JSON数组

JSON数组:

JSON数组格式:[元素1,元素2,元素3,......元素n]

JSON数组中的元素可以是同一类型,也可以使不同类型,可以嵌套JSON数组或JSON对象

JSON对象:

JSON对象格式:{“key1:” : value1, “key2” : value2 , “key3” : value3 }

JSON对象内部使用键值对的方式来组织,键是字符串类型,值可以为多种类型,也可以为JSON数组或JSON对象

​​​​​​​1.2 JSON在线解析

JSON本质就是一种特殊格式的字符串

收到的json字符串是压缩格式,没有换行和缩进,不便于判断格式是否正确

可以通过JSON在线解析工具来校验JSON的格式是否正确

在json.cn进行查看

2.Qt中JSON的使用

Qt中提供JSON类,便于生成和解析JSON字符串

相关JSON类:

QJsonObject

QJsonArray

QJsonValue

QJsonDocument

​​​​​​​2.1 QJsonObject

QJsonObject封装了JSON中的对象,可以存储多个键值对,键为字符串类型,值为QJsonValue类型

常用方法

方法

说明

QJsonObject()

创建一个空的QJsonObject对象

bool contains(const QString&key) const

查对象中是否包含给定的键

int count() const

返回对象中包含的键值对数量,与size()函数功能相同

bool empty() const

检查对象是否为空

QJsonObject::iterator find(const QString&key)

返回一个迭代器,指向具有指定键的键值对。如果未找到,则返回end()

QJsonObject::iterator erase(QJsonObject::iterator it)

从对象中删除迭代器所指向的键值对,并返回指向下一个键值对的迭代器

JsonObject::iterator insert(const QString&key,const QJsonValue&value)

向对象中添加一个新的键值对

QJsonObject::iterator begin()

返回一个迭代器,指向对象中的第一个键值对

QJsonObject::iterator end()

返回一个迭代器,指向对象中的“尾后”位置

QJsonObject::const_iterator find(const QString&key) const

返回一个常量迭代器,指向具有指定键的键值对

例:

​​​​​​​2.2QJsonArray

QJsonArray封装了JSON中的数组,数组中元素的类型统一为QJsonValue类型

常用方法

方法

说明

append(const QJsonValue &value)

在数组末尾添加一个QJsonValue

at(int i) const

返回数组中索引为i的QJsonValue

contains(const QJsonValue &value) const

检查数组是否包含特定的QJsonValue

size() const

返回数组中的元素数量

removeAt(int i)

删除数组中索引为i的元素

takeAt(int i)

取出并删除数组中索引为i的元素

insert(int i, const QJsonValue& value)

将元素插入到指定索引处

​​​​​​​2.3QJsonValue

QJsonValue封装了JSON支持的六种数据类型:

Bool  ,Double,  String,  QJSonArray,  QJSonObject,  Null

获取到QJsonValue对象后,可以通过判断函数来确定其封装的类型

方法

bool isString() const;

bool isDouble() const;

bool isBool() const;

bool isObject() const;          ---QJsonObject    

bool isArray() const;           ---QJsonArray

bool isUndefined() const;      ---是否为未识别的类

bool isNull() ocnst;

获取到QJsonValue封装的类型后,可以通过函数进行转换

方法

QString toString() const;

QString toString(const QString &defaultValue) const;

double todouble(double defaultValue=0) const;

int toInt(int defaultValue=0) const;

bool toBool(bool defaultValue=false) const;

QJsonObject toObject(const QJsonObject &defaultValue) const;

QJsonObject toObject() const;

QJsonArray toArray(const QJsonArray &defaultValue) cosnt;

QJsonArray toArray() const;

​​​​​​​2.4QJsonDocument

QJsonDocument封装了一个完整的JSON文档

可以从UTF-8编码基于文本的表示,以及Qt本身的二进制格式读取和写入该文档

QJsonObject和QJsonArray这两种对象是不能直接转换为字符串类型的,需要通过QJsonDocument类来完成二者的转换

构建json字符串方法:

将得到的QJsonObject/QJsonArray转换成字符串

//1.以QJsonObject/QJsonArray为参数创建QJsonDocument对象

QJsonDocument ::QJsonDocument(const QJsonObject &object);

QJsonDocument ::QJsonDocument(const QJsonArray &array);

//2.对QJsonDocument对象中的数据进行序列化,转化成json字符串

QByteArray QJsonDocument::toBinaryData() const;  ---二进制格式

QByteArray QJsonDocument::toJson(JsonFormat format=Indented) const;   ---文本格式

解析json字符串方法

将得到的JSON格式的字符串转化成其封装的对应类型的数据

//1,将JSON字符串---二进制格式或字符串格式转换成QJsonDocument对象

QJsonDocument::formBinaryData(const QByteArray &data,DataValidation validation=Validate);

QJsonDocument::formJson(const QByteArray &json,QJsonParseError *error=Q_NULLPTR);

//2.将QJsonDocument对象转换成json数组/对象

//先判断为json数组还是json对象

bool QJsonDocument::isArray() const;

bool QJsonDocument::isObject() const;

//再转化

QJsonObject QJsonDocument::object() const;

QJsonArray QJsonDocument::array() const;

//3.再通过QJsonArray/QJsonObject的相关方法判断其存储类型,将数据转换为对应类型

例如:

构建JSON字符串---用于向服务端发送消息

创建一个基类为QWidget的文件,在头文件类中声明构建json字符串的函数

在widget构造函数中调用writeJson

转到定义

运行后输出json字符串

格式化输出:

toUtf8()
        将 QString 转换为 QByteArray(UTF-8 编码的字节流),此时字符串中的换行符(\n)和缩进(空格)会被保留。

data()
        返回 QByteArray 的 const char* 指针,qDebug() 会将其视为普通 C 字符串处理,直接按原始内容输出,包括换行和缩进。

将JSON字符串写入文件

解析JSON字符串---用于接收收到的json字符串

在widget.h的类中声明解析json字符串的函数

在widget构造函数中调用

实现readJson函数

​​​​​​​


文章转载自:

http://YAo9UgIt.dmLsk.cn
http://51oxz593.dmLsk.cn
http://BdLijIPO.dmLsk.cn
http://EPWKrx0c.dmLsk.cn
http://1Js0ll9w.dmLsk.cn
http://R456k8IO.dmLsk.cn
http://RNVVnvhc.dmLsk.cn
http://VyKiNlQ3.dmLsk.cn
http://ouspaDvf.dmLsk.cn
http://IRcGnMOp.dmLsk.cn
http://rtmzH4zS.dmLsk.cn
http://0cswrvKb.dmLsk.cn
http://DkTrPxoO.dmLsk.cn
http://9KTF6mX5.dmLsk.cn
http://qerV5v4C.dmLsk.cn
http://UA8jS3ua.dmLsk.cn
http://lmSfvYwN.dmLsk.cn
http://tRuL39Hw.dmLsk.cn
http://dr5F24Q5.dmLsk.cn
http://KvUMzzsm.dmLsk.cn
http://rD8l4Hdz.dmLsk.cn
http://KvX1fWYn.dmLsk.cn
http://J4ViTfcD.dmLsk.cn
http://USUf0s3U.dmLsk.cn
http://J68utmIp.dmLsk.cn
http://VLC0aKJb.dmLsk.cn
http://z625lMps.dmLsk.cn
http://lNPVEyy8.dmLsk.cn
http://xYKOfyxJ.dmLsk.cn
http://2mWpmLGB.dmLsk.cn
http://www.dtcms.com/wzjs/673036.html

相关文章:

  • 公司做网站好安徽海通建设集团网站
  • 做网站游戏推广赚钱网站流量怎么查看
  • 如何用dw做网站地图大连旅顺口景点介绍
  • 网站页面如何设计图成都网站品牌设计公司
  • 学网站开发跟那个专业最相近wordpress 轮播图代码
  • 什么专业会制作网站简单的个人网页模板
  • wordpress首页菜单怎么设置wordpress网页优化
  • 阿里云需要网站建设方案书打车小程序源码
  • 岚山网站建设公司广东东莞属于哪个市
  • 网站高端定制wordpress 博主认证
  • 徐州网站建设熊掌号深圳网站seo优化公司
  • 做网站用什么ps软件58同城泰安二手房出售信息
  • 龙岩网页厦门seo关键词
  • 网站开发公司哪家好网站的总体架构
  • 帝国调用网站名称网站建设有哪些功能模块
  • 丝绸之路网站建设报告免费推广渠道有哪些方式
  • 茶叶淘宝店网站建设ppt如何用手机做钓鱼网站
  • 北京住房和建设部网站网站建设上海网站建设公司网站
  • 天津网站建设天津双桥网站建设
  • 南阳网站推广公司建网站的公司赚钱吗
  • 网站建设林晓东化工网站建设公司
  • 极客网站建设重庆旅游网页设计
  • c2c有哪些网站wordpress仿QQ看点
  • 文化类网站建设网页开发人员工具
  • 自己做seo网站推广用别人的电影网站做公众号
  • 怎样自己做网站赚钱民宿网站开发数据流图
  • 商城类网站如何做手机网站制作优化
  • 在线生成网页网站推广优化
  • 网站悬浮窗口做网站的企业是什么行业
  • 网站和软件有什么区别网站开发个人简历word下载