- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Qt之JSON生成与解析
Qt之JSON生成与解析
简述
Qt5 中包含了处理 JSON 的类,均以 QJson 开头(例如:QJsonDocument、QJsonArray、QJsonObject),在 QtCore 模块中,不需要额外引入其它模块。
简述
常用的 JSON 库
JSON 常用类
简单的 JSON 对象
简单的 JSON 数组
复杂的 JSON
更多参考
常用的 JSON 库
中介绍了 JSON 在各种语言中的应用,在 C/C++ 中比较常用的JSON 库主要有以下几个:
JsonCpp
JsonCpp 是一个 C++ 用来处理 JSON 数据的开发包。
网址:/
cJSON
cJSON 是一个超轻巧,携带方便,单文件,简单的可以作为 ANSI-C 标准的 JSON 解析器。
网址:/projects/cjson/
QJson
QJson 是一个基于 Qt 的开发包用来将 JSON 数据解析成 QVariant 对象,JSON 的数组将被映射为QVariantList 实例,而其他对象映射为 QVariantMap 实例。
网址:/
关于 Qt 中对 JSON 的生成与解析,Qt5 以前的版本,可以使用 QJson 库,需要单独下载、编译,才能使用。到了 Qt5,提供了专门的 QJsonDocument 及其相关类来读和写 JSON 文档。
JSON 常用类
QJsonDocument
QJsonDocument 类用于读和写 JSON 文档。
一个 JSON 文档可以使用 QJsonDocument::fromJson() 从基于文本的表示转化为 QJsonDocument, toJson() 则可以反向转化为文本。解析器非常快且高效,并将 JSON 转换为 Qt 使用的二进制表示。
已解析文档的有效性,可以使用 !isNull() 进行查询。
如果要查询一个 JSON 文档是否包含一个数组或一个对象,使用 isArray() 和 isObject()。包含在文档中的数组或对象可以使用 array() 或 object() 检索,然后读取或操作。
也可以使用 fromBinaryData() 或 fromRawData() 从存储的二进制表示创建来 JSON 文档。
QJsonArray
QJsonArray 类封装了一个 JSON 数组。
JSON 数组是值的列表。列表可以被操作,通过从数组中插入和删除 QJsonValue 。
一个 QJsonArray 可以和一个 QVariantList 相互转换。可以使用 size() 来查询条目的数量,通过 insert() 在指定索引处插入值,removeAt() 来删除指定索引的值。
QJsonObject
QJsonObject 类封装了一个 JSON 对象。
一个 JSON 对象是一个“key/value 对”列表,key 是独一无二的字符串,value 由一个 QJsonValue 表示。
一个 QJsonObject 可以和一个 QVariantMap 相互转换。可以使用 size() 来查询“key/value 对”的数量,通过 insert() 插入“key/value 对”, remove() 删除指定的 key。
QJsonValue
QJsonValue 类封装了一个值。
JSON 中的值有 6 种基本数据类型:
bool(QJsonValue::Bool)
double(QJsonValue::Double)
string(QJsonValue::String)
array(QJsonValue::Array)
object(QJsonValue::Object)
null(QJsonValue::Null)
一个值可以由任何上述数据类型表示。此外,QJsonValue 有一个特殊的标记来表示未定义的值,可以使用 isUndefined() 查询。
值的类型可以通过 type() 或 isBool()、isString() 等访问函数查询。同样地,值可以通过 toBool()、toString() 等函数转化成相应的存储类型。
QJsonParseError
QJsonParseError 类用于在 JSON 解析中报告错误。
枚举 QJsonParseError::ParseError:
该枚举描述 JSON 文档在解析过程中所发生的错误类型。
常量 值 描述
QJsonParseError::NoError 0 未发生错误
QJsonParseError::UnterminatedObject 1 对象不正确地终止以右花括号结束
QJsonParseError::MissingNameSeparator 2 分隔不同项的逗号丢失
QJsonPar
您可能关注的文档
- 2013年6月英语四级考试真题(第1套).docx.docx
- 五年级英语pep5_Recycle2教案.doc
- 实验一串口通信.doc
- 四年级英语上册Recycle_1教案.doc
- 广东省广州市南沙区博海学校2015-2016学年七年级英语上册《Unit 1 making friends》导学案6.doc
- 五上第三单元及recycle教案.doc
- 朗文4A Chapter 2 教案.doc
- 辽宁省本溪市第一中学2017届高三上学期第二次月考 英语.doc.docx
- Red Hat Enterprise linux命令基础.doc
- 2017研英语一小作文训练及范文.doc
- 初中英语阅读显性教学策略对学生阅读策略认知发展的影响研究教学研究课题报告.docx
- VR技术在高中地理教学中的教学资源开发与应用研究教学研究课题报告.docx
- 人工智能在区域教育均衡发展中作用研究:基于家校共育的家长培训模式教学研究课题报告.docx
- 用户需求视角下的人工智能教育空间可持续发展策略分析教学研究课题报告.docx
- 《基于模糊逻辑的农业灌溉智能决策系统设计与优化》教学研究课题报告.docx
- 基于人工智能的小学品德与社会教学环境的情感化设计策略教学研究课题报告.docx
- 小学高年级课堂注意力训练方法与效果分析教学研究课题报告.docx
- 初中化学教学中的实验操作技能培训与创新能力培养教学研究课题报告.docx
- 高中政治教育:校园垃圾分类政策解读与公民环保意识培养研究教学研究课题报告.docx
- 小学英语“词汇教学”策略与效果评估教学研究课题报告.docx
文档评论(0)