PySide6.QtCore.QCborMap¶
- class QCborMap¶
QCborMap类用于保存可在CBOR中表示的关联容器。更多…概要¶
方法¶
def
__init__()def
clear()def
compare()def
contains()def
empty()def
isEmpty()def
keys()def
__ne__()def
__lt__()def
__le__()def
__eq__()def
__gt__()def
__ge__()def
operator[]()def
remove()def
size()def
swap()def
take()def
toCborValue()def
toJsonObject()def
toVariantHash()def
toVariantMap()def
value()
静态函数¶
def
fromJsonObject()def
fromVariantMap()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
此类可用于在CBOR中保存一个关联容器,即键和值类型之间的映射。CBOR是简洁二进制对象表示法,是一种非常紧凑的二进制数据编码形式,是JSON的超集。它由IETF受限RESTful环境(CoRE)工作组创建,并在许多新的RFC中使用。它旨在与CoAP协议一起使用。
与JSON和QVariantMap不同,CBOR映射的键可以是任何类型,而不仅仅是字符串。因此,
QCborMap实际上是QCborValue键到QCborValue值元素的映射。然而,对于所有接受键参数的成员函数,
QCborMap提供了可以高效处理整数和字符串的重载。事实上,鼓励使用整数键,因为它们占用的传输字节更少,并且编码和解码更简单。已知由IETF CoRE WG设计的新协议专门与CBOR一起工作,使用这些整数键。QCborMap不是排序的,因此,搜索键的复杂度是线性的(O(n))。QCborMap实际上保持了元素插入的顺序,这意味着通过仔细按排序顺序插入元素,可以创建排序的 QCborMaps。CBOR 不要求排序,但建议这样做。QCborMap也可以与 QVariantMap 和QJsonObject相互转换。然而,在执行转换时,任何非字符串键将使用单向方法进行字符串化,转换回QCborMap时将无法还原。另请参阅
QCborArrayQCborValueQJsonDocumentQVariantMap 解析和显示CBOR数据 序列化转换器 保存和加载游戏- __init__()¶
构造一个空的CBOR映射对象。
另请参阅
- __init__(other)
- Parameters:
其他 –
QCborMap
创建一个
QCborMap对象,它是other的副本。- clear()¶
清空此映射。
另请参阅
比较此映射和
other,依次比较每个元素,并返回一个整数,指示此映射是否应排序在other之前(如果结果为负)或之后(如果结果为正)。如果此函数返回0,则两个映射相等并包含相同的元素。请注意,CBOR映射是无序的,这意味着包含完全相同但顺序不同的两个映射仍然会比较不同。为了避免这种情况,建议以可预测的顺序将元素插入映射中,例如按升序键值。实际上,规范CBOR表示需要键按排序顺序排列的映射。
有关CBOR排序顺序的更多信息,请参见
compare()。- contains(key)¶
- Parameters:
key –
QLatin1String- Return type:
布尔
- contains(key)
- Parameters:
key –
QCborValue- Return type:
布尔
如果此映射包含由键
key标识的键值对,则返回 true。另请参阅
value(const QCborValue &)operator[](const QCborValue &)find(const QCborValue &)remove(const QCborValue &)contains(qint64)remove(QLatin1StringView)remove(const QString &)- contains(key)
- Parameters:
key – str
- Return type:
布尔
这是一个重载函数。
如果此映射包含由键
key标识的键值对,则返回 true。另请参阅
value(const QString &)operator[](const QString &)find(const QString &)remove(const QString &)contains(qint64)remove(QLatin1StringView)remove(const QCborValue &)- contains(key)
- Parameters:
key – int
- Return type:
布尔
如果此映射包含由键
key标识的键值对,则返回true。CBOR建议使用整数键,因为它们占用更少的空间并且编码和解码更简单。另请参阅
value(qint64)operator[](qint64)find(qint64)remove(qint64)contains(QLatin1StringView)remove(const QString &)remove(const QCborValue &)- empty()¶
- Return type:
布尔
isEmpty()的同义词。此函数是为了与使用标准库 API 的通用代码兼容而提供的。如果此映射为空(
size()== 0),则返回true。将
obj对象中找到的所有JSON项使用QCborValue::fromJson()转换为CBOR,并返回由这些元素组成的映射。这种转换是无损的,因为CBOR类型系统是JSON的超集。此外,此函数返回的映射可以通过使用
toJsonObject()转换回原始的obj。- static fromVariantHash(hash)¶
- Parameters:
hash – 字典,键类型为 .QString,值类型为 QVariant。
- Return type:
将
hash中的所有项目使用fromVariant()转换为CBOR,并返回由这些元素组成的映射。从
QVariant的转换并非完全无损。更多信息请参阅fromVariant()中的文档。将
map中的所有项目使用fromVariant()转换为CBOR,并返回由这些元素组成的映射。从
QVariant的转换并非完全无损。更多信息请参阅fromVariant()中的文档。- isEmpty()¶
- Return type:
布尔
如果此映射为空(即
size()为0),则返回true。- keys()¶
- Return type:
QCborValue的列表
返回此映射中所有键的列表。
另请参阅
keys()keys()比较
lhs和rhs映射,依次比较每个元素,如果两个映射包含任何不同的元素或元素顺序不同,则返回 true,否则返回 false。请注意,CBOR映射是无序的,这意味着包含完全相同但顺序不同的两个映射仍然会比较不同。为了避免这种情况,建议以可预测的顺序将元素插入映射中,例如按升序键值。实际上,规范CBOR表示需要键按排序顺序排列的映射。
有关Qt中CBOR相等的更多信息,请参见
compare()。另请参阅
compare()operator==()operator==()operator==()operator- __ne__(rhs)
- Parameters:
rhs –
QCborValue- Return type:
布尔
比较
lhs和rhs映射,依次比较每个元素,如果lhs映射应该在rhs之前排序,则返回 true,否则返回 false。请注意,CBOR映射是无序的,这意味着包含完全相同但顺序不同的两个映射仍然会比较不同。为了避免这种情况,建议以可预测的顺序将元素插入映射中,例如按升序键值。实际上,规范CBOR表示需要键按排序顺序排列的映射。
有关CBOR排序顺序的更多信息,请参见
compare()。另请参阅
compare()operator==()operator==()operator==()operator!=()- __lt__(rhs)
- Parameters:
rhs –
QCborValue- Return type:
布尔
比较
lhs和rhs映射,依次比较每个元素,如果lhs映射应该在rhs之前排序,或者如果两个映射包含相同顺序的相同元素,则返回 true,否则返回 false。请注意,CBOR映射是无序的,这意味着包含完全相同但顺序不同的两个映射仍然会比较不同。为了避免这种情况,建议以可预测的顺序将元素插入映射中,例如按升序键值。实际上,规范CBOR表示需要键按排序顺序排列的映射。
有关CBOR排序顺序的更多信息,请参见
compare()。另请参阅
compare()operator==()operator==()operator==()operator!=()- __le__(rhs)
- Parameters:
rhs –
QCborValue- Return type:
布尔
比较
lhs和rhs映射,依次比较每个元素,如果两个映射包含相同顺序的相同元素,则返回 true,否则返回 false。请注意,CBOR映射是无序的,这意味着包含完全相同但顺序不同的两个映射仍然会比较不同。为了避免这种情况,建议以可预测的顺序将元素插入映射中,例如按升序键值。实际上,规范CBOR表示需要键按排序顺序排列的映射。
有关Qt中CBOR相等的更多信息,请参见
compare()。另请参阅
compare()operator==()operator!=()operator- __eq__(rhs)
- Parameters:
rhs –
QCborValue- Return type:
布尔
比较
lhs和rhs映射,依次比较每个元素,如果lhs映射应在rhs之后排序,则返回true,否则返回false。请注意,CBOR映射是无序的,这意味着包含完全相同但顺序不同的两个映射仍然会比较不同。为了避免这种情况,建议以可预测的顺序将元素插入映射中,例如按升序键值。实际上,规范CBOR表示需要键按排序顺序排列的映射。
有关CBOR排序顺序的更多信息,请参见
compare()。另请参阅
compare()operator==()operator==()operator==()operator!=()- __gt__(rhs)
- Parameters:
rhs –
QCborValue- Return type:
布尔
比较
lhs和rhs映射,依次比较每个元素,如果lhs映射应在rhs之后排序,或者如果两个映射包含相同顺序的相同元素,则返回 true,否则返回 false。请注意,CBOR映射是无序的,这意味着包含完全相同但顺序不同的两个映射仍然会比较不同。为了避免这种情况,建议以可预测的顺序将元素插入映射中,例如按升序键值。实际上,规范CBOR表示需要键按排序顺序排列的映射。
有关CBOR排序顺序的更多信息,请参见
compare()。另请参阅
compare()operator==()operator==()operator==()operator!=()- __ge__(rhs)
- Parameters:
rhs –
QCborValue- Return type:
布尔
- operator(key)¶
- Parameters:
key –
QLatin1String- Return type:
- operator(key)
- Parameters:
key –
QCborValue- Return type:
返回此映射中与键
key对应的QCborValue元素(如果存在)。如果映射中不包含键
key,此函数将返回一个包含未定义值的QCborValue。因此,使用此函数无法区分键不存在的情况和键映射到未定义值的情况。如果映射包含多个等于
key的键,则此函数返回哪个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常是发送方存在问题的迹象。operator[](qint64), operator[](
QLatin1StringView), operator[](const QCborOperator[] &)另请参阅
value(const QCborValue &)find(const QCborValue &)constFind(const QCborValue &)remove(const QCborValue &)contains(const QCborValue &)- operator(key)
- Parameters:
key – str
- Return type:
这是一个重载函数。
返回此映射中与键
key对应的QCborValue元素(如果存在)。如果映射中不包含键
key,此函数将返回一个包含未定义值的QCborValue。因此,无法通过此函数区分键不存在的情况和键映射到未定义值的情况。如果映射包含多个等于
key的键,则此函数返回哪一个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常是发送方存在问题的迹象。operator[](qint64), operator[](
QLatin1StringView), operator[](const QCborOperator[] &)另请参阅
value(const QString &)find(const QString &)constFind(const QString &)remove(const QString &)contains(const QString &)- operator(key)
- Parameters:
key – int
- Return type:
返回此映射中与键
key对应的QCborValue元素(如果存在)。CBOR建议使用整数键,因为它们占用更少的空间并且编码和解码更简单。如果映射中不包含键
key,此函数将返回一个包含未定义值的QCborValue。因此,使用此函数无法区分键不存在的情况和键映射到未定义值的情况。如果映射包含多个等于
key的键,则此函数返回哪个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常表示发送方存在问题。operator[](
QLatin1StringView), operator[](constQString&), operator[](const QCborOperator[] &)另请参阅
value(qint64)find(qint64)constFind(qint64)remove(qint64)contains(qint64)- remove(key)¶
- Parameters:
key –
QLatin1String
- remove(key)
- Parameters:
key –
QCborValue
如果找到,从映射中移除键
key和对应的值。如果映射中不包含此键,此函数不执行任何操作。如果映射包含多个等于
key的键,则此函数将移除哪一个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常表示发送方存在问题。remove(qint64), remove(
QLatin1StringView), remove(constQString&)另请参阅
value(const QCborValue &)operator[](const QCborValue &)find(const QCborValue &)contains(const QCborValue &)- remove(key)
- Parameters:
key – str
这是一个重载函数。
如果找到,从映射中移除键
key及其对应的值。如果映射中不包含此键,则此函数不执行任何操作。如果映射包含多个等于
key的键,则此函数将移除哪一个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常表示发送方存在问题。remove(qint64), remove(
QLatin1StringView), remove(constQCborValue&)另请参阅
value(const QString &)operator[](const QString &)find(const QString &)contains(const QString &)- remove(key)
- Parameters:
key – int
如果找到,从映射中移除键
key及其对应的值。如果映射中不包含此键,此函数不执行任何操作。如果映射包含多个等于
key的键,则此函数将移除哪一个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常是发送方存在问题的迹象。remove(
QLatin1StringView), remove(constQString&), remove(constQCborValue&)另请参阅
value(qint64)operator[](qint64)find(qint64)contains(qint64)- size()¶
- Return type:
整数
返回此映射中的元素数量。
另请参阅
交换此映射和
other的内容。- take(key)¶
- Parameters:
key –
QLatin1String- Return type:
- take(key)
- Parameters:
key –
QCborValue- Return type:
从映射中移除键
key及其对应的值并返回该值(如果找到)。如果映射中不包含该键,则此函数不执行任何操作。如果映射包含多个等于
key的键,则此函数将移除哪一个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常表示发送方存在问题。另请参阅
value(const QCborValue &)operator[](const QCborValue &)find(const QCborValue &)contains(const QCborValue &)take(QLatin1StringView)take(const QString &)take(qint64)insert()- take(key)
- Parameters:
key – str
- Return type:
从映射中移除键
key及其对应的值并返回该值(如果找到)。如果映射中不包含该键,则此函数不执行任何操作。如果映射包含多个等于
key的键,则此函数将移除哪一个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常表示发送方存在问题。另请参阅
value(const QString &)operator[](const QString &)find(const QString &)contains(const QString &)take(QLatin1StringView)take(qint64)take(const QCborValue &)insert()- take(key)
- Parameters:
key – int
- Return type:
从映射中移除键
key及其对应的值并返回该值(如果找到)。如果映射中不包含此键,则此函数不执行任何操作。如果映射包含多个等于
key的键,则此函数将移除哪一个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常是发送方存在问题的迹象。另请参阅
value(qint64)operator[](qint64)find(qint64)contains(qint64)take(QLatin1StringView)take(const QString &)take(const QCborValue &)insert()- toCborValue()¶
- Return type:
显式构造一个表示此映射的
QCborValue对象。通常不需要此函数,因为QCborValue有一个用于QCborMap的构造函数,因此转换是隐式的。将
QCborMap转换为QCborValue允许它在任何可以使用QCborValue的上下文中使用,包括作为QCborMap中的键和映射类型,以及toCbor()。另请参阅
QCborValue(const QCborMap &)- toJsonObject()¶
- Return type:
QJsonObject
递归地将此映射中的每个
QCborValue值使用toJsonValue()转换为JSON,并为所有非字符串的键创建字符串键,然后返回由这些关联组成的相应QJsonObject。请注意,CBOR 包含比 JSON 更丰富和广泛的类型集,因此在此转换过程中可能会丢失一些信息。有关应用了哪些转换的更多详细信息,请参阅
toJsonValue()。将映射键转换为字符串¶
JSON对象被定义为具有字符串键,与CBOR不同,因此将
QCborMap转换为QJsonObject将意味着键值的“字符串化”步骤。转换将使用上述对标签和扩展类型的特殊处理,并将其他类型转换如下:类型
转换
布尔
“真”和“假”
空值
“null”
未定义
“undefined”
整数
数字的十进制字符串形式
Double
数字的小数字符串形式
字节数组
除非有不同标记(见上文),否则编码为Base64url
数组
替换为其
诊断 符号的紧凑形式Map
替换为其
Diagnostic notation的紧凑形式标签和扩展类型
标签号被删除,标记值被转换为字符串
- toVariantHash()¶
- Return type:
字典的键类型为 .QString,值类型为 QVariant。
将CBOR值转换为
QVariant,使用toVariant()并“字符串化”此映射中的所有CBOR键,返回从该关联列表生成的QVariantHash。QVariantMaps 具有字符串键,与 CBOR 不同,因此将
QCborMap转换为 QVariantMap 将意味着键值的“字符串化”步骤。详情请参阅toJsonObject()。此外,转换为
QVariant并不是完全无损的。更多信息请参见toVariant()中的文档。- toVariantMap()¶
- Return type:
字典的键类型为 .QString,值类型为 QVariant。
将CBOR值转换为
QVariant,使用toVariant()并“字符串化”此映射中的所有CBOR键,返回从该关联列表生成的QVariantMap。QVariantMaps 具有字符串键,与 CBOR 不同,因此将
QCborMap转换为 QVariantMap 将意味着键值的“字符串化”步骤。详情请参阅toJsonObject()。此外,转换为
QVariant并不是完全无损的。更多信息请参见toVariant()中的文档。- value(key)¶
- Parameters:
key –
QLatin1String- Return type:
- value(key)
- Parameters:
key –
QCborValue- Return type:
返回此映射中与键
key对应的QCborValue元素(如果存在)。如果映射中不包含键
key,此函数将返回一个包含未定义值的QCborValue。因此,无法通过此函数区分键不存在的情况和键映射到未定义值的情况。如果映射包含多个等于
key的键,则此函数返回哪个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常表示发送方存在问题。值(qint64), 值(
QLatin1StringView), 值(constQString&)另请参阅
operator[](const QCborValue &)find(const QCborValue &)constFind(const QCborValue &)remove(const QCborValue &)contains(const QCborValue &)- value(key)
- Parameters:
key – str
- Return type:
这是一个重载函数。
返回此映射中与键
key对应的QCborValue元素(如果存在)。如果映射中不包含键
key,此函数将返回一个包含未定义值的QCborValue。因此,无法通过此函数区分键不存在的情况和键映射到未定义值的情况。如果映射包含多个等于
key的键,则此函数返回哪个键是未定义的。QCborMap不允许插入重复的键,但可以通过解码包含重复键的CBOR流来创建这样的映射。通常不允许重复键,并且存在重复键通常表示发送方存在问题。值(qint64), 值(
QLatin1StringView), 值(constQCborValue&)另请参阅
operator[](const QString &)find(const QString &)constFind(const QString &)remove(const QString &)contains(const QString &)- value(key)
- Parameters:
key – int
- Return type:
返回此映射中与键
key对应的QCborValue元素(如果存在)。CBOR建议使用整数键,因为它们占用更少的空间并且编码和解码更简单。如果映射中不包含键
key,此函数将返回一个包含未定义值的QCborValue。因此,无法通过此函数区分键不存在的情况和键映射到未定义值的情况。如果映射包含多个等于
key的键,函数返回将引用哪一个键是未定义的。QCborMap不允许插入重复的键,但通过解码包含重复键的CBOR流可以创建这样的映射。通常不允许重复键,并且存在重复键通常是发送方存在问题的迹象。值(
QLatin1StringView), 值(constQString&), 值(constQCborValue&)另请参阅
operator[](qint64)find(qint64)constFind(qint64)remove(qint64)contains(qint64)