Qt 中的 CBOR 支持

Qt 支持处理 CBOR 数据。CBOR 是一种存储数据的二进制格式,它具有 JSON 中可用类型的超集,但更为紧凑。

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

有关 CBOR 数据格式的更多详情,请参阅RFC 7049

概述

CBOR 是一种存储结构化数据的格式。它有三组内置类型:

  • 基本类型:整数、浮点、布尔、空等。
  • 字符串类型:字符串和字节数组
  • 容器:数组和映射

此外,CBOR 还可以添加 "标签 "来扩展类型的含义。容器类型可以包含基本类型、类字符串类型和容器。

CBOR 类

QCborValue 类

QCborValue 类代表任何 CBOR 类型。它还有一个简单的应用程序接口,用于读写QCborStreamReaderQCborStreamWriter 对象,以及在QCborArrayQCborMap 的帮助下操作内存中的此类对象。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 对象。它具有与QVariantMapQVariantHashQJsonObject 之间的转换功能,但它可以拥有任何类型的键,而不仅仅是QString

QCborStreamReader 类

QCborStreamReader 类是一个低级 API,用于从QIODeviceQByteArray 或内存指针读取 CBOR 数据。它的 API 与QXmlStreamReader 类类似。

QCborStreamWriter 类

QCborStreamWriter 类是将 CBOR 数据写入QIODeviceQByteArray 的低级应用程序接口。它的应用程序接口与QXmlStreamWriter 类类似。

另请参阅 "解析和显示 CBOR 数据"、"序列化转换器"以及 "保存和加载游戏"。

QCborArray

用于保存 CBOR 元素数组

QCborArray::ConstIterator

QCborArray::ConstIterator 类为 QCborArray 提供了一个 STL 风格的常量迭代器。

QCborArray::Iterator

QCborArray::Iterator 类为 QCborArray 提供了一个 STL 风格的非 Const 迭代器。

QCborMap

用于保存可在 CBOR 中表示的关联容器

QCborMap::ConstIterator

QCborMap::ConstIterator 类为 QCborMap 提供了一个 STL 风格的常量迭代器。

QCborMap::Iterator

QCborMap::Iterator 类为 QCborMap 提供了一个 STL 风格的非 Const 迭代器。

QCborParserError

被 QCborValue 用于报告解析错误

QCborStreamReader

在 QByteArray 或 QIODevice 上运行的简单 CBOR 流解码器

QCborStreamWriter

在单向流上运行的简单 CBOR 编码器

QCborValue

用 CBOR 封装一个值

© 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.