<QtCborCommon>

<QtCborCommon> 头文件包含流类(QCborStreamReader 和QCborStreamWriter )以及QCborValue 共有的定义。更多内容...

Header: #include <QtCborCommon>

类型

enum class QCborKnownTags { DateTimeString, UnixTime_t, PositiveBignum, NegativeBignum, Decimal, …, Signature }
enum class QCborSimpleType { False, True, Null, Undefined }
enum class QCborTag { }

详细说明

另请参阅 QCborError 。

类型文档

enum class QCborKnownTags

该枚举包含一份截至 Qt 实现时已知的 CBOR 标签列表。该列表并非旨在涵盖所有标签,仅包含由 RFC 支持或被 Qt 实现专门使用的标签。

权威列表由 IANA 在CBOR 标签注册表中维护。

常量值描述
QCborKnownTags::DateTimeString0一个日期和时间字符串,格式符合 RFC 3339 标准,并根据 RFC 4287 进行了细化。其格式与Qt::ISODate 和Qt::ISODateWithMs 相同。
QCborKnownTags::UnixTime_t1自 1970-01-01T00:00Z 以来已过去的秒数的数值表示。
QCborKnownTags::PositiveBignum2任意长度的正数,以网络字节序编码为字节数组。例如,数字264由一个字节数组表示,该数组包含字节值 0x01,后跟 8 个零字节。
QCborKnownTags::NegativeBignum3任意长度的负数,编码方式为该数的绝对值减去1。例如,一个包含字节值 0x02 后接 8 个零字节的字节数组,表示数值-265- 1。
QCborKnownTags::Decimal4十进制小数,编码为两个整数的数组:第一个是10的幂次方,第二个是整数尾数。数值273.15将编码为数组[-2, 27315] 。
QCborKnownTags::Bigfloat5与十进制类似,但指数是 2 的幂。
QCborKnownTags::COSE_Encrypt016RFC 8152(CBOR 对象签名和加密)中规定的Encrypt0 映射。
QCborKnownTags::COSE_Mac017符合RFC 8152(CBOR 对象签名与加密)规范的Mac0 映射。
QCborKnownTags::COSE_Sign118一个符合RFC 8152(CBOR 对象签名和加密)规定的 `Sign1 ` 映射。
QCborKnownTags::ExpectedBase64url21表示如果流被转换为 JSON,则应使用 Base64url 对字节数组进行编码。
QCborKnownTags::ExpectedBase6422表示如果流被转换为 JSON,则应使用 Base64 对字节数组进行编码。
QCborKnownTags::ExpectedBase1623表示如果流被转换为 JSON,则应使用 Base16(十六进制)对字节数组进行编码。
QCborKnownTags::EncodedCbor24表示该字节数组包含一个 CBOR 流。
QCborKnownTags::Url32表示该字符串包含一个 URL。
QCborKnownTags::Base64url33表示该字符串包含使用 Base64url 编码的数据。
QCborKnownTags::Base6434表示该字符串包含使用 Base64 编码的数据。
QCborKnownTags::RegularExpression35表示该字符串包含一个 Perl 兼容正则表达式模式。
QCborKnownTags::MimeMessage36表示该字符串包含一个 MIME 消息(根据RFC 2045)。
QCborKnownTags::Uuid37表示该字节数组包含一个 UUID。
QCborKnownTags::COSE_Encrypt96RFC 8152(CBOR 对象签名和加密)中规定的Encrypt 映射。
QCborKnownTags::COSE_Mac97RFC 8152(CBOR 对象签名与加密)中规定的Mac 映射。
QCborKnownTags::COSE_Sign98RFC 8152(CBOR 对象签名和加密)中规定的Sign 映射。
QCborKnownTags::Signature55799解释不变;该标签可作为 CBOR 流中的最外层标签用作文件头。

QCborValue 在解码过程中会解析以下标签,并生成具有扩展 Qt 类型的对象,同时在编码相同的扩展类型时也会使用这些标签。

常量值描述
QCborKnownTags::DateTimeString0QDateTime
QCborKnownTags::UnixTime_t1QDateTime (仅在解码时)
QCborKnownTags::Url32QUrl
QCborKnownTags::Uuid37QUuid

此外,如果包含QByteArray 的QCborValue 被标记为ExpectedBase64url 、ExpectedBase64 或ExpectedBase16 之一,QCborValue 在转换为JSON时将使用预期的编码(参见QCborValue::toJsonValue )。

另请参阅 QCborTag 、QCborStreamWriter::append (QCborTag)、QCborStreamReader::isTag ()、QCborStreamReader::toTag ()、QCborValue::isTag ()以及QCborValue::tag ()。

enum class QCborSimpleType

此枚举包含 CBOR 可能的“简单类型”。简单类型的范围为 0 到 255,这些类型本身不携带任何额外值。

目前已知的值如下:

常量值描述
QCborSimpleType::False20布尔值“false”。
QCborSimpleType::True21布尔值“true”。
QCborSimpleType::Null22无值(null)。
QCborSimpleType::Undefined23值缺失或已被删除,通常表示错误。

Qt CBOR API 支持对任何简单类型进行编码和解码,无论是上述类型之一还是其他任何值。

应用程序仅应在已发布相应规范的情况下使用其他值,否则远程端可能无法正确解释和验证这些值。值 24 到 31 已被保留,不得使用。

当前的权威列表由 IANA 在“简单值”注册表中维护。

另请参阅 QCborStreamWriter::append(QCborSimpleType)、QCborStreamReader::isSimpleType()、QCborStreamReader::toSimpleType()、QCborValue::isSimpleType() 以及QCborValue::toSimpleType()。

enum class QCborTag

该枚举不包含任何枚举项,仅用于提供对 CBOR 标签的类型安全访问。

CBOR 标签是 64 位数字,附着于通用 CBOR 类型上以提供进一步的语义含义。QCborTag 可以从 `QCborKnownTags ` 中找到的枚举构造,也可以通过直接提供数值表示来构造。

例如,以下代码创建了一个包含一个标记为 2 的字节数组的 `QCborValue `。

QCborValue(QCborTag(2), QByteArray("\x01\0\0\0\0\0\0\0\0", 9));

另请参阅 QCborKnownTags 、QCborStreamWriter::append (QCborTag)、QCborStreamReader::isTag()、QCborStreamReader::toTag()、QCborValue::isTag() 以及QCborValue::tag()。

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