<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::DateTimeString | 0 | 日期和时间字符串,格式根据 RFC 3339 制定,并经 RFC 4287 完善。其格式与Qt::ISODate 和Qt::ISODateWithMs 相同。 |
QCborKnownTags::UnixTime_t | 1 | 自 1970-01-01T00:00Z 起经过的秒数。 |
QCborKnownTags::PositiveBignum | 2 | 任意长度的正数,按网络字节顺序编码为字节数组。例如,数字264由一个字节数组表示,该数组包含字节值 0x01,然后是 8 个 0 字节。 |
QCborKnownTags::NegativeBignum | 3 | 任意长度的负数,编码为该数字的绝对值减一。例如,一个包含字节值 0x02 和 8 个 0 字节的字节数组表示-265- 1。 |
QCborKnownTags::Decimal | 4 | 十进制分数,编码为两个整数的数组:第一个是 10 的幂的指数,第二个是积分尾数。数值 273.15 将被编码为数组[-2, 27315] 。 |
QCborKnownTags::Bigfloat | 5 | 与十进制类似,但指数是 2 的幂。 |
QCborKnownTags::COSE_Encrypt0 | 16 | RFC 8152(CBOR 对象签名和加密)规定的Encrypt0 映射。 |
QCborKnownTags::COSE_Mac0 | 17 | RFC 8152(CBOR 对象签名和加密)规定的Mac0 映射。 |
QCborKnownTags::COSE_Sign1 | 18 | RFC 8152(CBOR 对象签名和加密)规定的Sign1 映射。 |
QCborKnownTags::ExpectedBase64url | 21 | 表示如果数据流转换为 JSON,字节数组应使用 Base64url 编码。 |
QCborKnownTags::ExpectedBase64 | 22 | 表示如果数据流转换为 JSON,则应使用 Base64 对字节数组进行编码。 |
QCborKnownTags::ExpectedBase16 | 23 | 表示如果数据流转换为 JSON,字节数组应使用 Base16(十六进制)编码。 |
QCborKnownTags::EncodedCbor | 24 | 表示字节数组包含 CBOR 数据流。 |
QCborKnownTags::Url | 32 | 表示字符串包含 URL。 |
QCborKnownTags::Base64url | 33 | 表示字符串包含使用 Base64url 编码的数据。 |
QCborKnownTags::Base64 | 34 | 表示字符串包含使用 Base64 编码的数据。 |
QCborKnownTags::RegularExpression | 35 | 表示字符串包含 Perl 兼容正则表达式模式。 |
QCborKnownTags::MimeMessage | 36 | 表示字符串包含 MIME 消息(根据RFC 2045)。 |
QCborKnownTags::Uuid | 37 | 表示字节数组包含 UUID。 |
QCborKnownTags::COSE_Encrypt | 96 | RFC 8152(CBOR 对象签名和加密)规定的Encrypt 映射。 |
QCborKnownTags::COSE_Mac | 97 | RFC 8152(CBOR 对象签名和加密)规定的Mac 映射。 |
QCborKnownTags::COSE_Sign | 98 | RFC 8152(CBOR 对象签名和加密)规定的Sign 映射。 |
QCborKnownTags::Signature | 55799 | 解释不变;该标记可用作 CBOR 流中最外层的标记,作为文件头。 |
QCborValue 在解码过程中会对以下标记进行解释,并生成具有扩展 Qt 类型的对象,在对相同的扩展类型进行编码时,它会使用这些标记。
常量 | 值 | 说明 |
---|---|---|
QCborKnownTags::DateTimeString | 0 | QDateTime |
QCborKnownTags::UnixTime_t | 1 | QDateTime (仅在解码时) |
QCborKnownTags::Url | 32 | QUrl |
QCborKnownTags::Uuid | 37 | QUuid |
此外,如果包含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::False | 20 | 假 "布尔值。 |
QCborSimpleType::True | 21 | 真 "布尔值。 |
QCborSimpleType::Null | 22 | 无值(空)。 |
QCborSimpleType::Undefined | 23 | 缺少或删除的值,通常是一个错误。 |
Qt CBOR API 支持编码和解码任何简单类型,无论是上述类型之一还是任何其他值。
应用程序只能在已发布相应规范的情况下使用其他值,否则远程解释和验证可能会失败。值 24 至 31 为保留值,不得使用。
当前的权威列表由 IANA 在简单值注册表中维护。
另请参阅 QCborStreamWriter::append(QCborSimpleType)、QCborStreamReader::isSimpleType( )、QCborStreamReader::toSimpleType( )、QCborValue::isSimpleType( ) 和QCborValue::toSimpleType( )。
enum class QCborTag
该枚举不包含枚举,仅用于提供对 CBOR 标记的类型安全访问。
CBOR 标记是附加到通用 CBOR 类型的 64 位数字,以提供进一步的语义。QCborTag 可以通过QCborKnownTags 中的枚举或直接提供数字表示来构造。
例如,下面创建了一个QCborValue ,其中包含一个标记为 2 的字节数组。
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().
© 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.