Qt 中的 CBOR 支持
Qt 提供了处理 CBOR 数据的支持。CBOR 是一种用于存储数据的二进制格式,其数据类型集是 JSON 的超集,但数据更紧凑。
Qt 中的 CBOR 支持提供了一个易于使用的 C++ API,用于解析、修改和保存 CBOR 数据。
有关 CBOR 数据格式的更多详细信息,请参阅RFC 7049。
概述
CBOR 是一种用于存储结构化数据的格式。它包含三类内置类型:
- 基本类型:整数、浮点数、布尔值、空值等。
- 字符串类类型:字符串和字节数组
- 容器:数组和映射
此外,CBOR 可以通过添加“标签”来扩展类型含义。容器类型可以包含基本类型、字符串类类型以及其他容器。
CBOR 类
QCborValue 类
QCborValue 类表示任何CBOR类型。它还提供了一个简单的API,用于读写QCborStreamReader 和QCborStreamWriter 对象,并借助QCborArray 和QCborMap 在内存中操作此类对象。 CborValue API 是基于完整的 CBOR 数据类型简化而来的,它始终将所有整数表示为qint64 ,将所有浮点数表示为double 。这意味着QCborValue 无法表示超出qint64 范围(-2^63 到 2^63-1)的 CBOR 整数值。 在创建 CBOR 流时,可配置QCborValue::toCbor() 尝试写入较短的单精度和半精度浮点数表示形式。
QCborArray 类
QCborArray 类用于存储QCborValue 对象的数组。一个QCborValue 对象可以包含一个QCborArray 对象。它提供了用于与QVariantList 、QStringList 、QJsonArray 之间相互转换的函数。
QCborMap 类
QCborMap 类用于存储QCborValue 对象的映射。一个QCborValue 对象可以包含一个QCborMap 对象。它提供了与QVariantMap 、QVariantHash 和QJsonObject 之间的相互转换函数,但其键可以是任意类型,而不仅限于QString 。
QCborStreamReader 类
QCborStreamReader 类是一个低级API,用于从QIODevice 、QByteArray 或内存指针中读取CBOR数据。其API与QXmlStreamReader 类类似。
QCborStreamWriter 类
QCborStreamWriter 类是一个用于将CBOR数据写入QIODevice 或QByteArray 的低级API。其API与QXmlStreamWriter 类类似。
另请参阅 “解析和显示 CBOR 数据”、“序列化转换器”以及“保存和加载游戏”。
用于存储 CBOR 元素数组 | |
QCborArray::ConstIterator 类为 QCborArray 提供了一个 STL 风格的 const 迭代器 | |
QCborArray::Iterator 类为 QCborArray 提供了一个 STL 风格的非 const 迭代器 | |
用于存储可在 CBOR 中表示的关联容器 | |
QCborMap::ConstIterator 类为 QCborMap 提供了一个 STL 风格的 const 迭代器 | |
QCborMap::Iterator 类为 QCborMap 提供了一个 STL 风格的非 const 迭代器 | |
由 QCborValue 用于报告解析错误 | |
简单的 CBOR 流解码器,可在 QByteArray 或 QIODevice 上运行 | |
简单的 CBOR 编码器,可在单向流上运行 | |
将值封装为 CBOR 格式 |
© 2026 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.