Qt 中的 JSON 支持
Qt 支持处理 JSON 数据。JSON 是一种源于 Javascript 的对象数据编码格式,现在被广泛用作互联网上的数据交换格式。
Qt 中的 JSON 支持提供了一个易于使用的 C++ API,用于解析、修改和保存 JSON 数据。
有关 JSON 数据格式的更多详情,请访问json.org和RFC 8259。
概述
JSON 是一种存储结构化数据的格式。它有 6 种基本数据类型:
- 布尔
- 双
- 字符串
- 数组
- 对象
- 空
值可以是上述任何类型。布尔值在 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 支持由这些类组成:
另请参阅 保存和加载游戏。
封装 JSON 数组 | |
读写 JSON 文档的方法 | |
封装一个 JSON 对象 | |
QJsonObject::const_iterator 类为 QJsonObject 提供了 STL 风格的常量迭代器 | |
QJsonObject::iterator类为QJsonObject提供了一个STL风格的非const迭代器。 | |
用于在 JSON 解析过程中报告错误 | |
封装 JSON 中的值 |
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.