Qt中的JSON支持

Qt提供了处理JSON数据的支持。JSON是一种由JavaScript派生出来的数据编码格式,但现在被广泛用作互联网上的数据交换格式。

Qt中的JSON支持提供了一个易于使用的C++ API来解析、修改和保存JSON数据。

有关JSON数据格式的更多详细信息可以在json.orgRFC 4627中找到。

概要

JSON是一种存储结构化数据格式的答案。它有6种基本数据类型

  • bool
  • double
  • string
  • 数组
  • 对象
  • null

一个值可以是以上任何一种类型。布尔值在JSON中由字符串“true”或“false”表示。JSON没有显式指定数字的有效范围,但Qt中的支持限于双精度浮点数的有效范围和精度。一个字符串可以是任何有效的Unicode字符串。一个数组是值的列表,一个对象是一组键/值对。一个对象中所有键都是字符串,并且一个对象不能包含任何重复的键。

JSON文本表示中,数组由方括号([ ... ])包围,对象由花括号({ ... })包围。数组中的条目由逗号分隔。一个对象中键和值之间的分隔符是冒号(:)。

一个简单的JSON文档,用于编码人物信息,如年龄、地址和电话号码,可能看起来像这样

{
    "FirstName": "John",
    "LastName": "Doe",
    "Age": 43,
    "Address": {
        "Street": "Downing Street 10",
        "City": "London",
        "Country": "Great Britain"
    },
    "Phone numbers": [
        "+44 1234567",
        "+44 2345678"
    ]
}

上述示例包含一个具有5个键/值对的对象。其中两个值是字符串,一个是数值,一个是另一个对象,最后一个是数组。

一个有效的JSON文档要么是一个数组,要么是一个对象,因此一个文档总是以方括号或花括号开始。

JSON类

所有JSON类都是基于值的,隐式共享类

Qt中的JSON支持包括以下类

另请参阅保存和加载游戏

QJsonArray

封装一个JSON数组

QJsonDocument

读取和写入JSON文档的方法

QJsonObject

封装一个JSON对象

QJsonObject::const_iterator

QJsonObject::const_iterator类为QJsonObject提供了STL风格的const迭代器

QJsonObject::iterator

QJsonObject::iterator类为QJsonObject提供了STL风格的non-const迭代器

QJsonParseError

用于报告JSON解析过程中的错误

QJsonValue

封装JSON中的值

© 2024 Qt公司有限公司。此处包含的文档贡献者的版权属于各自的拥有者。此处提供的文档是根据GNU自由文档许可协议版本1.3条款授权的,由免费软件基金会发布。Qt及其相关商标是芬兰Qt公司及其在全世界其他国家的商标。所有其他商标均为其各自所有者的财产。