Auf dieser Seite

QCborValue Class

Die Klasse „QCborValue“ kapselt einen Wert im CBOR-Format. Mehr dazu...

Header: #include <QCborValue>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

QCborValue-Vergleiche

KategorieVergleichbare Typen
starkQCborValue

Öffentliche Typen

enum DiagnosticNotationOption { Compact, LineWrapped, ExtendedFormat }
flags DiagnosticNotationOptions
enum EncodingOption { NoTransformation, UseFloat, UseFloat16, UseIntegers }
flags EncodingOptions
enum Type { Integer, ByteArray, String, Array, Map, …, Uuid }

Öffentliche Funktionen

QCborValue()
QCborValue(QCborArray &&a)
QCborValue(QCborMap &&m)
QCborValue(QCborSimpleType st)
QCborValue(QCborValue::Type t_)
QCborValue(QStringView s)
QCborValue(bool b)
QCborValue(const QByteArray &ba)
QCborValue(const QCborArray &a)
QCborValue(const QCborMap &m)
QCborValue(const QDateTime &dt)
QCborValue(const QRegularExpression &rx)
QCborValue(const QString &s)
QCborValue(const QUrl &url)
QCborValue(const QUuid &uuid)
QCborValue(const void *)
QCborValue(double d)
QCborValue(qint64 i)
QCborValue(std::nullptr_t)
QCborValue(QCborKnownTags tag, const QCborValue &tv = QCborValue())
QCborValue(QCborTag tag, const QCborValue &tv = QCborValue())
QCborValue(QLatin1StringView s)
QCborValue(const QCborValue &other)
QCborValue(QCborValue &&other)
~QCborValue()
int compare(const QCborValue &other) const
bool isArray() const
bool isBool() const
bool isByteArray() const
bool isContainer() const
bool isDateTime() const
bool isDouble() const
bool isFalse() const
bool isInteger() const
bool isInvalid() const
bool isMap() const
bool isNull() const
bool isRegularExpression() const
bool isSimpleType() const
bool isSimpleType(QCborSimpleType st) const
bool isString() const
bool isTag() const
bool isTrue() const
bool isUndefined() const
bool isUrl() const
bool isUuid() const
void swap(QCborValue &other)
QCborTag tag(QCborTag defaultValue = QCborTag(-1)) const
QCborValue taggedValue(const QCborValue &defaultValue = QCborValue()) const
QCborArray toArray() const
QCborArray toArray(const QCborArray &defaultValue) const
bool toBool(bool defaultValue = false) const
QByteArray toByteArray(const QByteArray &defaultValue = {}) const
QByteArray toCbor(QCborValue::EncodingOptions opt = NoTransformation) const
void toCbor(QCborStreamWriter &writer, QCborValue::EncodingOptions opt = NoTransformation) const
QDateTime toDateTime(const QDateTime &defaultValue = {}) const
QString toDiagnosticNotation(QCborValue::DiagnosticNotationOptions opts = Compact) const
double toDouble(double defaultValue = 0) const
qint64 toInteger(qint64 defaultValue = 0) const
QJsonValue toJsonValue() const
QCborMap toMap() const
QCborMap toMap(const QCborMap &defaultValue) const
QRegularExpression toRegularExpression(const QRegularExpression &defaultValue = {}) const
QCborSimpleType toSimpleType(QCborSimpleType defaultValue = QCborSimpleType::Undefined) const
QString toString(const QString &defaultValue = {}) const
(since 6.10) QAnyStringView toStringView(QAnyStringView defaultValue = {}) const
QUrl toUrl(const QUrl &defaultValue = {}) const
QUuid toUuid(const QUuid &defaultValue = {}) const
QVariant toVariant() const
QCborValue::Type type() const
QCborValue &operator=(const QCborValue &other)
QCborValue &operator=(QCborValue &&other)
QCborValueRef operator[](const QString &key)
const QCborValue operator[](const QString &key) const
QCborValueRef operator[](QLatin1StringView key)
QCborValueRef operator[](qint64 key)
const QCborValue operator[](QLatin1StringView key) const
const QCborValue operator[](qint64 key) const

Statische öffentliche Mitglieder

QCborValue fromCbor(QCborStreamReader &reader)
QCborValue fromCbor(const QByteArray &ba, QCborParserError *error = nullptr)
QCborValue fromCbor(const char *data, qsizetype len, QCborParserError *error = nullptr)
QCborValue fromCbor(const quint8 *data, qsizetype len, QCborParserError *error = nullptr)
QCborValue fromJsonValue(const QJsonValue &v)
QCborValue fromVariant(const QVariant &variant)
bool operator!=(const QCborValue &lhs, const QCborValue &rhs)
bool operator<(const QCborValue &lhs, const QCborValue &rhs)
bool operator<=(const QCborValue &lhs, const QCborValue &rhs)
bool operator==(const QCborValue &lhs, const QCborValue &rhs)
bool operator>(const QCborValue &lhs, const QCborValue &rhs)
bool operator>=(const QCborValue &lhs, const QCborValue &rhs)

Detaillierte Beschreibung

Diese Klasse kann verwendet werden, um einen der vielen in CBOR verfügbaren Typen zu speichern. CBOR steht für „Concise Binary Object Representation“ und ist eine sehr kompakte Form der binären Datenkodierung, die eine Obermenge von JSON darstellt. Sie wurde von der IETF-Arbeitsgruppe „Constrained RESTful Environments“ (CoRE) entwickelt, die sie in vielen neuen RFCs verwendet hat. Sie ist für den Einsatz in Verbindung mit dem CoAP-Protokoll vorgesehen.

CBOR verfügt über drei Gruppen von integrierten Typen:

  • Grundtypen: Ganzzahlen, Gleitkommazahlen (double), Boolesche Werte, null usw.
  • Zeichenfolgenähnliche Typen: Zeichenfolgen und Byte-Arrays
  • Container: Arrays und Maps

Darüber hinaus unterstützt CBOR eine Form der Typ-Erweiterbarkeit, indem einem der oben genannten Typen ein „Tag“ zugeordnet wird, um zusätzliche Informationen zu vermitteln. Beispielsweise wird eine UUID durch ein Tag und ein Byte-Array dargestellt, das die 16 Bytes des UUID-Inhalts enthält. QCborValue unterstützt das Erstellen und Dekodieren mehrerer dieser erweiterten Typen direkt mit Qt-Klassen (wie z. B. QUuid).

Eine vollständige Liste finden Sie unter QCborValue::Type. Der Typ eines QCborValue kann mit type() oder einer der „isXxxx“-Funktionen abgefragt werden.

Erweiterte Typen und getaggte Werte

Ein getaggter Wert ist ein normaler QCborValue, der mit einer Zahl gepaart ist, die sein Tag darstellt. Weitere Informationen dazu, welche Tags in der API vorhanden sind, sowie die vollständige, offizielle Liste finden Sie unter QCborKnownTags. Solche Kombinationen bilden erweiterte Typen.

QCborValue unterstützt bestimmte erweiterte Typen in der API, wie z. B. URL (mit QUrl) und UUID (mit QUuid). Andere erweiterte Typen, die in der API nicht unterstützt werden, werden durch einen QCborValue vom Typ Tag dargestellt. Das Tag kann später mit tag() und der getaggte Wert mit taggedValue() abgerufen werden.

Um die zukünftige Kompatibilität zu gewährleisten, werden QCborValues, die erweiterte Qt-Typen enthalten, als gleichwertig mit dem Tag-Typ desselben Inhalts betrachtet. Mit anderen Worten: Der folgende Ausdruck ist wahr:

QCborValue(uuid) == QCborValue(QCborKnownTags::Uuid, uuid.toRfc4122());

Undefinierte und Nullwerte

QCborValue kann den Wert „null“ enthalten, der keinem bestimmten Typ angehört. Er ähnelt dem C++-Typ „ std::nullptr_t “, dessen einziger möglicher Wert „ nullptr “ ist. QCborValue verfügt über einen Konstruktor, der einen solchen Typ entgegennimmt und einen null-QCborValue erstellt.

Null-Werte werden verwendet, um anzuzeigen, dass ein optionaler Wert nicht vorhanden ist. In dieser Hinsicht ähnelt er dem Typ „ std::optional “ aus der C++-Standardbibliothek, wenn dieser deaktiviert ist. Im Gegensatz zum C++-Typ sind CBOR-Null-Werte einfach vom Typ „Null“, und es ist nicht möglich zu bestimmen, welchen konkreten Typ sie ersetzen.

„QCborValue“ kann auch vom Typ „undefined“ sein, der einen Wert von „undefined“ darstellt. Tatsächlich ist es genau das, was der Standardkonstruktor von „QCborValue“ erstellt.

Undefinierte Werte unterscheiden sich von Nullwerten. Während Nullwerte verwendet werden, um einen optionalen Wert anzuzeigen, der nicht angegeben wurde, wird „Undefined“ in der Regel verwendet, um anzuzeigen, dass ein erwarteter Wert nicht bereitgestellt werden konnte – meist aufgrund eines Fehlers oder einer Vorbedingung, die nicht erfüllt werden konnte.

Solche Werte sind vollkommen gültig und können in CBOR-Strömen vorkommen, im Gegensatz zu JSON-Inhalten und dem „undefined“-Bit von QJsonValue. Aber wie das „Undefined“ von QJsonValue wird es bei ungültigen Suchvorgängen von der value()-Methode oder dem schreibgeschützten Operator[] eines CBOR-Containers zurückgegeben (Index außerhalb des Bereichs bei QCborArray oder Schlüssel nicht gefunden bei QCborMap). Es ist nicht möglich, einen solchen Fall vom Wert von `Undefined` zu unterscheiden. Sollte dies erforderlich sein, überprüfen Sie die Größe von ` QCborArray ` und verwenden Sie die Iterator-API von ` QCborMap `.

Einfache Typen

CBOR unterstützt weitere einfache Typen, die wie „Null“ und „Undefined“ keinen anderen Wert annehmen. Sie werden synonym als „Simple Types“ und „Simple Values“ bezeichnet. CBOR kodiert Boolesche Werte als zwei unterschiedliche Typen (einen für „ true “ und einen für „ false “), doch „QCborValue“ bietet hierfür eine komfortable API.

Derzeit sind keine weiteren einfachen CBOR-Typen definiert. QCborValue unterstützt sie lediglich anhand ihrer Nummern mit APIs wie ` isSimpleType()` und ` toSimpleType()`, die zur Kompatibilität mit zukünftigen Spezifikationen bereitgestellt werden, bevor die Qt-API aktualisiert werden kann. Von ihrer Verwendung vor dem Erscheinen einer solchen Spezifikation wird abgeraten, da andere CBOR-Implementierungen sie möglicherweise nicht vollständig unterstützen.

CBOR-Unterstützung

QCborValue unterstützt alle CBOR-Funktionen, die zum Erstellen kanonischer und strenger Streams erforderlich sind. Es implementiert fast alle in RFC 7049 spezifizierten Funktionen.

Die folgende Tabelle listet die von QCborValue unterstützten CBOR-Funktionen auf.

FunktionUnterstützung
Vorzeichenlose ZahlenJa (Bereich vonqint64 )
Negative ZahlenJa (Bereich vonqint64 )
Byte-ZeichenfolgenJa
TextzeichenfolgenJa
Chunked-ZeichenfolgenSiehe unten
TagsJa (beliebig)
Boolesche WerteJa
NullJa
UndefiniertJa
Beliebige einfache WerteJa
Fließkommazahlen mit halber Genauigkeit (16 Bit)Ja
Gleitkommazahlen mit einfacher Genauigkeit (32 Bit)Ja
Gleitkomma mit doppelter Genauigkeit (64 Bit)Ja
Unendlichkeitswerte und NaN-GleitkommazahlenJa
Arrays und Maps mit festgelegter LängeJa
Arrays und Maps mit unbestimmter LängeJa
Map-Schlüsseltypen außer Zeichenketten und GanzzahlenJa (beliebig)

Ganzzahlen in `QCborValue` sind auf den Bereich des Typs ` qint64 ` beschränkt. Das heißt, von -9.223.372.036.854.775.808 (-263) bis 9.223.372.036.854.775.807 (263 - 1). CBOR selbst kann ganzzahlige Werte außerhalb dieses Bereichs darstellen, was von „QCborValue“ jedoch nicht unterstützt wird. Beim Dekodieren eines Streams mit „ fromCbor()“, der einen dieser Werte enthält, konvertiert „QCborValue“ diesen automatisch in „ Double “, wobei jedoch bis zu 11 Bits an Genauigkeit verloren gehen können.

fromCbor() kann in Chunks unterteilte Zeichenfolgen dekodieren, führt die Chunks jedoch immer zu einem einzigen `QCborValue` zusammen. Aus diesem Grund schreibt es bei Verwendung von ` toCbor()` stets nicht in Chunks unterteilte Zeichenfolgen (was ohnehin vom Canonical-Format vorgeschrieben ist).

QCborValue wandelt Gleitkommawerte mit halber und einfacher Genauigkeit im CBOR-Stream stets in Werte mit doppelter Genauigkeit um. Die Funktion toCbor() kann einen Parameter entgegennehmen, der angibt, dass diese Werte neu erstellt werden sollen.

QCborValueRef

QCborValueRef ist eine Hilfsklasse für QCborArray und QCborMap. Es handelt sich um den Typ, den man erhält, wenn man eine der mutierenden APIs in diesen Klassen verwendet. Im Gegensatz zu QCborValue können dieser Klasse neue Werte zugewiesen werden. Wenn dies geschieht, wird das Array oder die Map, auf die sie verweist, mit dem neuen Wert aktualisiert. In allen anderen Aspekten ist ihre API identisch mit der von QCborValue.

Siehe auch QCborArray, QCborMap, QCborStreamReader, QCborStreamWriter, QJsonValue, QJsonDocument, „Serialization Converter“ sowie „Parsing and displaying CBOR data“.

Dokumentation zu Mitgliedstypen

enum QCborValue::DiagnosticNotationOption
flags QCborValue::DiagnosticNotationOptions

Diese Enumeration wird im Optionsargument der Funktion ` toDiagnosticNotation()` verwendet, um das Ausgabeformat anzupassen.

KonstanteWertBeschreibung
QCborValue::Compact0x00Verwendet keine Zeilenumbrüche und erzeugt so eine kompakte Darstellung.
QCborValue::LineWrapped0x01Verwendet Zeilenumbrüche, wobei pro Zeile ein ` QCborValue ` steht.
QCborValue::ExtendedFormat0x02Verwendet einige abweichende Optionen zur Darstellung von Werten, die in RFC 7049 nicht vorgesehen sind. Diese Optionen können sich ändern.

Derzeit verändert „ ExtendedFormat “ die Darstellung von Byte-Arrays. Ohne diese Option werden sie stets hexadezimal und ohne Leerzeichen kodiert. Mit dieser Option verwendet „ QCborValue::toCbor()“ je nach Kontext entweder Hexadezimalzahlen mit Leerzeichen, Base64- oder Base64URL-Kodierung.

Der Typ `DiagnosticNotationOptions` ist ein `typedef` für ` QFlags<DiagnosticNotationOption>`. Er speichert eine ODER-Kombination von `DiagnosticNotationOption`-Werten.

Siehe auch ` toDiagnosticNotation()`.

enum QCborValue::EncodingOption
flags QCborValue::EncodingOptions

Diese Enumeration wird im Argument „options“ der Funktion „ toCbor()“ verwendet, um das Verhalten des Encoders anzupassen.

KonstanteWertBeschreibung
QCborValue::NoTransformation0(Standard) Führt keine Transformationen durch.
QCborValue::UseFloat0x02Weist den Encoder an, wann immer möglich IEEE 754-Gleitkommazahlen mit einfacher Genauigkeit (d. h. float) zu verwenden.
QCborValue::UseFloat16UseFloat | 0x04Weist den Encoder an, nach Möglichkeit IEEE-754-Gleitkommazahlen mit halber Genauigkeit (d. h. qfloat16) zu verwenden. Impliziert „ UseFloat “.
QCborValue::UseIntegers0x08Weist den Encoder an, Ganzzahlen zu verwenden, wann immer ein Wert vom Typ „ Double “ eine Ganzzahl enthält.

Die Verwendung von „ UseFloat16 “ ist für die Kodierung des Streams im kanonischen Format erforderlich, ansonsten jedoch nicht notwendig.

Der Typ „EncodingOptions“ ist ein „typedef“ für „QFlags<EncodingOption>“. Er speichert eine ODER-Kombination von „EncodingOption“-Werten.

Siehe auch ` toCbor()`.

enum QCborValue::Type

Diese Enumeration repräsentiert den Typ „ QCborValue “. Sie wird von der Funktion „ type()“ zurückgegeben.

Die integrierten CBOR-Typen sind:

KonstanteWertBeschreibung
QCborValue::Integer0x00qint64: Ein ganzzahliger Wert
QCborValue::ByteArray0x40QByteArray: ein Byte-Array („Byte-Zeichenkette“)
QCborValue::String0x60QString: eine Unicode-Zeichenkette („Textzeichenkette“)
QCborValue::Array0x80QCborArray: ein Array von QCborValues
QCborValue::Map0xa0QCborMap: ein assoziativer Container mit QCborValues
QCborValue::SimpleType0x100QCborSimpleType: einer von mehreren einfachen Typen/Werten
QCborValue::FalseSimpleType + int(QCborSimpleType::False)bool: der einfache Typ für „value“ false
QCborValue::TrueSimpleType + int(QCborSimpleType::True)bool: der einfache Typ für den Wert true
QCborValue::NullSimpleType + int(QCborSimpleType::Null)std::nullptr_t: der einfache Typ für den Nullwert
QCborValue::UndefinedSimpleType + int(QCborSimpleType::Undefined)(kein Typ) der einfache Typ für den undefinierten Wert
QCborValue::Double0x202double: eine Gleitkommazahl mit doppelter Genauigkeit
QCborValue::Invalid-1Kein gültiger Wert; dies deutet in der Regel auf einen CBOR-Dekodierungsfehler hin

Darüber hinaus kann „ QCborValue “ erweiterte Typen darstellen:

KonstanteWertBeschreibung
QCborValue::Tag0xc0Ein unbekannter oder nicht erkannter erweiterter Typ, dargestellt durch sein Tag (ein „ QCborTag “) und den mit dem Tag versehenen Wert (ein „ QCborValue “)
QCborValue::DateTime0x10000QDateTime: ein Datums- und Zeitstempel
QCborValue::Url0x10020QUrl: eine URL oder URI
QCborValue::RegularExpression0x10023QRegularExpression: das Muster eines regulären Ausdrucks
QCborValue::Uuid0x10025QUuid: eine UUID

Siehe auch type().

Dokumentation zu den Member-Funktionen

QCborValue::QCborValue()

Erstellt einen QCborValue vom Typ „ Undefined “.

Undefinierte CBOR-Werte werden verwendet, um fehlende Informationen anzuzeigen, die in der Regel auf eine vorherige Operation zurückzuführen sind, die nicht wie erwartet abgeschlossen wurde. Sie werden außerdem von den APIs „ QCborArray “ und „ QCborMap “ verwendet, um anzuzeigen, dass das gesuchte Element nicht gefunden wurde.

Undefinierte Werte werden durch „ Undefined simple type “ dargestellt. Aus diesem Grund geben „QCborValues“ mit undefinierten Werten auch bei den Methoden „ isSimpleType()“ und „ isSimpleType(QCborSimpleType::Undefined) “ den Wert „true“ zurück.

Undefinierte Werte unterscheiden sich von Nullwerten.

QCborValue-Objekte mit undefinierten Werten unterscheiden sich zudem von ungültigen QCborValue-Objekten. Die API erzeugt keine ungültigen QCborValues, diese können jedoch als Folge eines Parsing-Fehlers auftreten.

Siehe auch „ isUndefined()“, „ isNull()“ und „ isSimpleType()“.

QCborValue::QCborValue(QCborArray &&a)

QCborValue::QCborValue(const QCborArray &a)

Erstellt ein „ QCborValue “ mit dem Array „ a “. Das Array kann später mit „ toArray()“ abgerufen werden.

Siehe auch toArray(), isArray() und isMap().

QCborValue::QCborValue(QCborMap &&m)

QCborValue::QCborValue(const QCborMap &m)

Erstellt eine „ QCborValue “ mit der Karte „ m “. Die Karte kann später mit „ toMap()“ abgerufen werden.

Siehe auch toMap(), isMap() und isArray().

QCborValue::QCborValue(QCborSimpleType st)

Erzeugt einen QCborValue vom einfachen Typ „ st “. Der Typ kann später sowohl mit „ toSimpleType()“ als auch mit „ isSimpleType(st)“ abgerufen werden.

Einfache CBOR-Typen sind Typen, denen kein Wert zugeordnet ist, wie beispielsweise der C++-Typ ` std::nullptr_t `, dessen einzig möglicher Wert ` nullptr` ist.

Ist st gleich QCborSimpleType::Null, so ist der resultierende QCborValue vom Typ Null; dasselbe gilt für QCborSimpleType::Undefined. Ist st gleich QCborSimpleType::False oder QCborSimpleType::True, so ist der erstellte QCborValue ein boolescher Wert, der jeweils den Wert „false“ oder „true“ enthält.

Diese Funktion kann mit einfachen Typen verwendet werden, die nicht in der API definiert sind. Um beispielsweise einen `QCborValue` mit dem einfachen Typ 12 zu erstellen, könnte man schreiben:

Einfache Typen sollten erst verwendet werden, wenn eine Spezifikation dafür veröffentlicht wurde, da andere Implementierungen diese möglicherweise nicht ordnungsgemäß unterstützen. Die Werte 24 bis 31 für einfache Typen sind reserviert und dürfen nicht verwendet werden.

isSimpleType(), isNull(), isUndefined(), isTrue(), isFalse()

QCborValue::QCborValue(QCborValue::Type t_)

Erstellt einen QCborValue vom Typ „ t_ “. Der diesem Typ zugeordnete Wert (sofern vorhanden) wird standardmäßig initialisiert.

Siehe auch ` type()`.

QCborValue::QCborValue(QStringView s)

Erstellt einen QCborValue mit dem Zeichenfolgenwert „ s “. Der Wert kann später mit der Funktion „ toString()“ abgerufen werden.

Siehe auch toString(), isString() und isByteArray().

QCborValue::QCborValue(bool b)

Erzeugt einen QCborValue mit dem booleschen Wert „ b “. Der Wert kann später mit der Funktion „ toBool()“ abgerufen werden.

Intern werden CBOR-Boolesche Werte durch ein Typenpaar dargestellt, wobei ein Typ für „true“ und der andere für „false“ steht. Aus diesem Grund geben boolesche QCborValues bei Aufruf von „ isSimpleType()“ den Wert „true“ zurück und bei Aufruf von „ isSimpleType(QCborSimpleType::False) “ oder „ isSimpleType(QCborSimpleType::True) “ einen der entsprechenden Werte.

Siehe auch „ toBool()“, „ isBool()“, „ isTrue()“, „ isFalse()“ und „ isSimpleType()“.

QCborValue::QCborValue(const QByteArray &ba)

Erzeugt einen QCborValue mit dem Byte-Array-Wert „ ba “. Der Wert kann später mit der Funktion „ toByteArray()“ abgerufen werden.

Siehe auch toByteArray(), isByteArray() und isString().

[explicit] QCborValue::QCborValue(const QDateTime &dt)

Erstellt ein QCborValue-Objekt vom erweiterten Datums-/Uhrzeit-Typ, das den durch dt dargestellten Wert enthält. Der Wert kann später mit toDateTime() abgerufen werden.

Die CBOR-Datums-/Uhrzeittypen sind Erweiterungstypen, die Tags verwenden: entweder eine Zeichenkette (im ISO-Datumsformat), die als „ DateTime “ gekennzeichnet ist, oder eine Zahl (in Sekunden seit Beginn des Jahres 1970, UTC), die als „ UnixTime_t “ gekennzeichnet ist. Beim Parsen von CBOR-Strömen konvertiert „QCborValue“ „ UnixTime_t “ in den zeichenfolgenbasierten Typ.

Siehe auch toDateTime(), isDateTime() und taggedValue().

[explicit] QCborValue::QCborValue(const QRegularExpression &rx)

Erstellt ein QCborValue-Objekt vom erweiterten Typ „Regulärer Ausdruck“, das den durch rx dargestellten Wert enthält. Der Wert kann später mit toRegularExpression() abgerufen werden.

Der CBOR-Typ für reguläre Ausdrücke ist ein erweiterter Typ, der durch eine als „ RegularExpression “ gekennzeichnete Zeichenkette dargestellt wird. Beachten Sie, dass CBOR-reguläre Ausdrücke nur die Muster speichern, sodass alle Flags, die das QRegularExpression -Objekt möglicherweise enthält, verloren gehen.

Siehe auch toRegularExpression(), isRegularExpression() und taggedValue().

QCborValue::QCborValue(const QString &s)

Erstellt einen QCborValue mit dem Zeichenfolgenwert „ s “. Der Wert kann später mit der Funktion „ toString()“ abgerufen werden.

Siehe auch toString(), isString() und isByteArray().

[explicit] QCborValue::QCborValue(const QUrl &url)

Erstellt ein QCborValue-Objekt vom erweiterten Typ „URL“, das den durch url dargestellten Wert enthält. Der Wert kann später mit toUrl() abgerufen werden.

Der CBOR-URL-Typ ist ein erweiterter Typ, der durch eine als „ Url “ gekennzeichnete Zeichenkette dargestellt wird.

Siehe auch toUrl(), isUrl() und taggedValue().

[explicit] QCborValue::QCborValue(const QUuid &uuid)

Erstellt ein QCborValue-Objekt vom erweiterten Typ „UUID“, das den durch uuid dargestellten Wert enthält. Der Wert kann später mit toUuid() abgerufen werden.

Der CBOR-UUID-Typ ist ein erweiterter Typ, der durch ein Byte-Array dargestellt wird, das als „ Uuid “ gekennzeichnet ist.

Siehe auch toUuid(), isUuid() und taggedValue().

[delete] QCborValue::QCborValue(const void *)

Erstellt standardmäßig eine Instanz von ` QCborValue`. Diese Funktion wurde gelöscht.

QCborValue::QCborValue(double d)

Erzeugt ein QCborValue-Objekt mit dem Gleitkommawert „ d “. Der Wert kann später mit der Funktion „ toDouble()“ abgerufen werden.

CBOR-Gleitkommawerte unterscheiden sich von Ganzzahlwerten. Daher werden „QCborValue“-Objekte mit Ganzzahlen anders verglichen als „QCborValue“-Objekte, die Gleitkommawerte enthalten, selbst wenn die in den Objekten enthaltenen Werte gleich sind.

Siehe auch toDouble(), isDouble() und isInteger().

QCborValue::QCborValue(qint64 i)

Erzeugt ein QCborValue-Objekt mit dem ganzzahligen Wert „ i “. Der Wert kann später mit der Funktion „ toInteger()“ abgerufen werden.

CBOR-Ganzzahlwerte unterscheiden sich von Gleitkommawerten. Daher werden „QCborValue“-Objekte mit Ganzzahlen anders verglichen als „QCborValue“-Objekte, die Gleitkommawerte enthalten, selbst wenn die in den Objekten enthaltenen Werte gleichwertig sind.

Siehe auch toInteger(), isInteger() und isDouble().

QCborValue::QCborValue(std::nullptr_t)

Erstellt einen QCborValue vom Typ „ Null “.

CBOR-Nullwerte werden verwendet, um optionale Werte zu kennzeichnen, die nicht angegeben wurden. Sie unterscheiden sich von undefinierten Werten dadurch, dass Nullwerte in der Regel nicht das Ergebnis eines früheren Fehlers oder Problems sind.

Siehe auch „ isNull()“, „ isUndefined()“ und „ isSimpleType()“.

QCborValue::QCborValue(QCborKnownTags tag, const QCborValue &tv = QCborValue())

QCborValue::QCborValue(QCborTag tag, const QCborValue &tv = QCborValue())

Erstellt einen „ QCborValue “ für den erweiterten Typ, der durch den Tag-Wert „ tag “ und den Tag-Wert „ tv “ dargestellt wird. Der Tag kann später mit „ tag()“ abgerufen werden, der mit dem Tag versehene Wert mit „ taggedValue()“.

Siehe auch isTag(), tag(), taggedValue() und QCborKnownTags.

QCborValue::QCborValue(QLatin1StringView s)

Erzeugt einen QCborValue mit der Latin-1-Zeichenkette, die von ` s` ausgewertet wird. Der Wert kann später mit ` toString()` abgerufen werden.

Dies ist eine überladene Funktion.

Siehe auch toString(), isString() und isByteArray().

[noexcept] QCborValue::QCborValue(const QCborValue &other)

Kopiert den Inhalt von „ other “ in dieses Objekt.

[noexcept] QCborValue::QCborValue(QCborValue &&other)

Überträgt den Inhalt des QCborValue-Objekts „ other “ in dieses Objekt und gibt die Ressourcen dieses Objekts frei.

Dies ist eine überladene Funktion.

[noexcept] QCborValue::~QCborValue()

Entfernt das aktuelle „ QCborValue “-Objekt und gibt alle damit verbundenen Ressourcen frei.

int QCborValue::compare(const QCborValue &other) const

Vergleicht diesen Wert mit other und gibt eine Ganzzahl zurück, die angibt, ob dieser Wert vor (bei negativem Ergebnis) oder nach other (bei positivem Ergebnis) sortiert werden soll. Wenn diese Funktion 0 zurückgibt, sind die beiden Werte gleich und haben denselben Inhalt.

Enthält jeder Wert von ` QCborValue ` ein Array oder eine Map, erfolgt der Vergleich rekursiv auf die darin enthaltenen Elemente.

Erweiterte Typen

QCborValue vergleicht „ QCborValue “, die einen erweiterten Typ enthalten, wie z. B. „ Url “ und „ Url “, sowie deren äquivalente getaggte Darstellung als gleich. So ist beispielsweise der folgende Ausdruck wahr:

QCborValue(QUrl("https://example.com")) == QCborValue(QCborKnownTags::Url, "https://example.com");

Beachten Sie, dass Qt-Typen wie ` QUrl ` und ` QDateTime ` ihre Argumente normalisieren und anderweitig modifizieren. Der obige Ausdruck ist nur deshalb wahr, weil die Zeichenkette auf der rechten Seite der normalisierte Wert ist, den der ` QCborValue ` auf der linken Seite annehmen würde. Wäre beispielsweise der Teil „https“ auf beiden Seiten in Großbuchstaben geschrieben, würde der Vergleich fehlschlagen. Informationen zu den von QCborValue durchgeführten Normalisierungen finden Sie in der Dokumentation des Konstruktors, der den betreffenden Qt-Typ verwendet.

Sortierreihenfolge

Die Sortierreihenfolge in CBOR ist in RFC 7049, Abschnitt 3.9, definiert, in dem die Sortierung von Schlüsseln in einem Map unter Verwendung der kanonischen Kodierung behandelt wird. Gemäß der Spezifikation „erfolgt die Sortierung anhand der Bytes der Darstellung der Schlüsseldatenelemente“ und als Konsequenzen wird Folgendes aufgeführt:

  • „Wenn zwei Schlüssel unterschiedliche Längen haben, wird der kürzere früher sortiert;“
  • „Wenn zwei Schlüssel dieselbe Länge haben, wird derjenige mit dem niedrigeren Wert in (byteweiser) lexikalischer Reihenfolge früher sortiert.“

Dies führt zu einer überraschenden Sortierung von `QCborValues`, bei der das Ergebnis dieser Funktion von dem abweicht, das später durch den Vergleich der enthaltenen Elemente ermittelt würde. Beispielsweise wird der „ QCborValue “ mit der Zeichenkette „zzz“ vor dem „ QCborValue “ mit der Zeichenkette „foobar“ sortiert, obwohl beim Vergleich als „ QStrings “ oder „ QByteArrays “ das „zzz“ nach dem „foobar“ sortiert wird (in Wörterbuchreihenfolge).

Die Spezifikation gibt nicht eindeutig an, welche Sortierreihenfolge für Werte unterschiedlicher Typen gelten soll (es heißt dort, dass bei der Sortierung die „3/5-Bit-Aufteilung für Haupttypen nicht berücksichtigt werden sollte“). QCborValue geht davon aus, dass auch Typen sortiert werden sollten. Die numerischen Werte der Aufzählung ` QCborValue::Type ` sind in dieser Reihenfolge angeordnet, mit Ausnahme der erweiterten Typen, die wie ihre getaggten Entsprechungen verglichen werden.

Hinweis: DieSortierreihenfolge ist vorläufig und kann sich noch ändern. Anwendungen sollten sich vorerst nicht auf die von dieser Funktion zurückgegebene Reihenfolge verlassen.

Siehe auch QCborArray::compare(), QCborMap::compare() und operator==().

[static] QCborValue QCborValue::fromCbor(QCborStreamReader &reader)

Dekodiert ein Element aus dem CBOR-Stream, der unter reader zu finden ist, und gibt die entsprechende Darstellung zurück. Diese Funktion ist rekursiv: Handelt es sich bei dem Element um eine Map oder ein Array, werden alle darin enthaltenen Elemente dekodiert, bis das oberste Objekt vollständig verarbeitet ist.

Diese Funktion muss nicht auf das Wurzelelement eines ` QCborStreamReader` angewendet werden. Der folgende Code veranschaulicht beispielsweise, wie das CBOR-Signatur-Tag am Anfang einer Datei übersprungen werden kann:

if (reader.isTag() && reader.toTag() == QCborKnownTags::Signature)
    reader.next();

QCborValue contents = QCborValue::fromCbor(reader);

Der zurückgegebene Wert kann teilweise vollständig sein und sich nicht von einem gültigen „ QCborValue “ unterscheiden, selbst wenn die Dekodierung fehlgeschlagen ist. Um festzustellen, ob ein Fehler aufgetreten ist, prüfen Sie, ob „ reader.lastError()“ einen Fehlerzustand anzeigt. Diese Funktion bricht die Dekodierung unmittelbar nach dem ersten Fehler ab.

Siehe auch toCbor(), toDiagnosticNotation(), toVariant() und toJsonValue().

[static] QCborValue QCborValue::fromCbor(const QByteArray &ba, QCborParserError *error = nullptr)

Dekodiert ein Element aus dem CBOR-Stream, der sich im Byte-Array ` ba ` befindet, und gibt die entsprechende Darstellung zurück. Diese Funktion ist rekursiv: Handelt es sich bei dem Element um eine Map oder ein Array, werden alle darin enthaltenen Elemente dekodiert, bis das oberste Objekt vollständig verarbeitet ist.

Diese Funktion speichert den eventuellen Fehlerstatus in dem Objekt, auf das error verweist, zusammen mit dem Offset der Stelle, an der der Fehler aufgetreten ist. Wenn kein Fehler aufgetreten ist, speichert sie NoError im Fehlerstatus und die Anzahl der verbrauchten Bytes (d. h., sie speichert den Offset für das erste ungenutzte Byte). Anhand dieser Informationen ist es möglich, weitere Daten zu analysieren, die möglicherweise im selben Byte-Array vorhanden sind.

Der Rückgabewert kann teilweise vollständig sein und sich nicht von einem gültigen ` QCborValue ` unterscheiden, selbst wenn die Dekodierung fehlgeschlagen ist. Um festzustellen, ob ein Fehler aufgetreten ist, prüfen Sie, ob in ` error` ein Fehler gespeichert wurde. Diese Funktion bricht die Dekodierung unmittelbar nach dem ersten Fehler ab.

Dies ist eine überladene Funktion.

Siehe auch ` toCbor()`, ` toDiagnosticNotation()`, ` toVariant()` und ` toJsonValue()`.

[static] QCborValue QCborValue::fromCbor(const char *data, qsizetype len, QCborParserError *error = nullptr)

[static] QCborValue QCborValue::fromCbor(const quint8 *data, qsizetype len, QCborParserError *error = nullptr)

Konvertiert „ len “ Bytes von „ data “ in ein „ QByteArray “ und ruft anschließend die Überladung dieser Funktion auf, die ein „ QByteArray “ akzeptiert, wobei zusätzlich „ error “ übergeben wird, sofern vorhanden.

[static] QCborValue QCborValue::fromJsonValue(const QJsonValue &v)

Konvertiert den in v enthaltenen JSON-Wert in den entsprechenden CBOR-Wert und gibt diesen zurück. Bei der Konvertierung von JSON nach CBOR geht kein Datenverlust auf, da die CBOR-Typenmenge umfangreicher ist als die von JSON. Zudem können Werte, die mit dieser Funktion in CBOR konvertiert wurden, mit toJsonValue() ohne Datenverlust wieder in JSON zurückkonvertiert werden.

Die folgende Tabelle listet die Zuordnung von JSON-Typen zu CBOR-Typen auf:

JSON-TypCBOR-Typ
BoolBool
NumberGanzzahl (sofern die Zahl keinen Bruchteil enthält und im Bereich von qint64 liegt) oder Gleitkommazahl
ZeichenketteZeichenkette
ArrayArray
ObjektMap
NullNull

QJsonValue kann auch undefiniert sein, was auf eine zuvor fehlgeschlagene Operation hinweist (z. B. die Suche nach einem Schlüssel, der in einem Objekt nicht vorhanden ist). Undefinierte Werte sind keine JSON-Typen und dürfen in JSON-Arrays und -Objekten nicht vorkommen, doch diese Funktion gibt den undefinierten Wert „ QCborValue “ zurück, wenn der entsprechende „ QJsonValue “ undefiniert ist.

Siehe auch toJsonValue(), fromVariant(), QCborArray::fromJsonArray() und QCborMap::fromJsonObject().

[static] QCborValue QCborValue::fromVariant(const QVariant &variant)

Konvertiert das „ QVariant “ variant in „ QCborValue “ und gibt es zurück.

QVariants können eine umfangreiche Liste verschiedener Metatypen enthalten, von denen viele keine entsprechende Darstellung in CBOR haben. Dazu gehören alle benutzerdefinierten Metatypen. Bei der Vorbereitung der Übertragung mit CBOR wird empfohlen, jeden Wert sorgfältig zu kodieren, um einen Darstellungsverlust zu vermeiden.

Die folgende Tabelle listet die Konvertierungen auf, die diese Funktion anwendet:

Qt (C++)-TypCBOR-Typ
ungültig (QVariant())Undefiniert
boolBool
std::nullptr_tNull
short, ushort, int, uint, qint64Ganzzahl
quint64Ganzzahl oder Double, falls außerhalb des Bereichs von qint64
float, doubleDouble
QByteArrayByteArray
QDateTimeDateTime
QCborSimpleTypeEinfacher Typ
QJsonArrayArray, konvertiert mit QCborArray::formJsonArray()
QJsonDocumentArray oder Map
QJsonObjectMap, konvertiert mit ` QCborMap::fromJsonObject()`
QJsonValuekonvertiert mit ` fromJsonValue()`
QRegularExpressionRegularExpression
QStringZeichenkette
QStringListArray
QVariantHashMap
QVariantListArray
QVariantMapMap
QUrlURL
QUuidUUID

Wenn ` QVariant::isNull()` „true“ zurückgibt, wird ein Null- QCborValue zurückgegeben oder in die Liste bzw. das Objekt eingefügt, unabhängig vom Typ, den ` QVariant` übergibt. Beachten Sie, dass die Verhaltensänderung in Qt 6.0, die sich auf ` QVariant::isNull()` auswirkt, auch diese Funktion betrifft.

Bei anderen, oben nicht aufgeführten Typen wird eine Konvertierung in einen String versucht, in der Regel – aber nicht immer – durch Aufruf von ` QVariant::toString()`. Schlägt die Konvertierung fehl, wird der Wert durch einen undefinierten CBOR-Wert ersetzt. Beachten Sie, dass ` QVariant::toString()` bei den meisten Typen ebenfalls zu Datenverlusten führt.

Bitte beachten Sie, dass sich die Konvertierungen über ` QVariant::toString()` jederzeit ändern können. Sowohl ` QVariant ` als auch ` QCborValue ` können in Zukunft erweitert werden, um weitere Typen zu unterstützen, was zu einer Änderung der Art und Weise führen wird, wie diese Funktion Konvertierungen durchführt.

Siehe auch toVariant(), fromJsonValue(), QCborArray::toVariantList(), QCborMap::toVariantMap() und QJsonValue::fromVariant().

bool QCborValue::isArray() const

Gibt „true“ zurück, wenn dieses QCborValue vom Typ „Array“ ist. Der Array-Wert kann mit toArray() abgerufen werden.

Siehe auch „ type()“ und „ toArray()“.

bool QCborValue::isBool() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ ein boolescher Wert ist. Der Wert kann mit „ toBool()“ abgerufen werden.

Siehe auch „ type()“, „ toBool()“, „ isTrue()“ und „ isFalse()“.

bool QCborValue::isByteArray() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ vom Typ „Byte-Array“ ist. Der Wert des Byte-Arrays kann mit „ toByteArray()“ abgerufen werden.

Siehe auch type() und toByteArray().

bool QCborValue::isContainer() const

Diese Hilfsfunktion gibt „true“ zurück, wenn „ QCborValue “ entweder ein Array oder ein Map ist.

Siehe auch „ isArray()“ und „ isMap()“.

bool QCborValue::isDateTime() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ vom Typ „Datum/Uhrzeit“ ist. Der Wert kann mit „ toDateTime()“ abgerufen werden. Datums- und Zeitangaben sind erweiterte Typen, die das Tag „ DateTime “ verwenden.

Zudem interpretiert „ QCborValue “ beim Dekodieren aus einem CBOR-Stream Tags mit dem Wert „ UnixTime_t “ und konvertiert sie in das entsprechende Datum/die entsprechende Uhrzeit.

Siehe auch type() und toDateTime().

bool QCborValue::isDouble() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ vom Typ „floating-point“ ist. Der Wert kann mit „ toDouble()“ abgerufen werden.

Siehe auch type() und toDouble().

bool QCborValue::isFalse() const

Gibt „true“ zurück, wenn dieser „ QCborValue “ ein Boolescher Wert mit dem Wert „false“ ist. Diese Funktion existiert, weil Boolesche Werte in CBOR intern als zwei separate Typen gespeichert werden, einer für „true“ und einer für „false“.

Siehe auch „ type()“, „ isBool()“, „ isTrue()“ und „ toBool()“.

bool QCborValue::isInteger() const

Gibt „true“ zurück, wenn diese „ QCborValue “ vom Typ „integer“ ist. Der Integer-Wert kann mit „ toInteger()“ abgerufen werden.

Siehe auch type() und toInteger().

bool QCborValue::isInvalid() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ keinem gültigen Typ entspricht. Ungültige „QCborValues“ unterscheiden sich von solchen mit undefinierten Werten und weisen in der Regel auf einen Dekodierungsfehler hin.

Siehe auch „ isUndefined()“ und „ isNull()“.

bool QCborValue::isMap() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ vom Typ „Map“ ist. Der Wert der Map kann mit „ toMap()“ abgerufen werden.

Siehe auch ` type()` und ` toMap()`.

bool QCborValue::isNull() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ vom Typ „null“ ist.

CBOR-Nullwerte werden verwendet, um optionale Werte zu kennzeichnen, die nicht angegeben wurden. Sie unterscheiden sich von undefinierten Werten darin, dass Nullwerte in der Regel nicht das Ergebnis eines früheren Fehlers oder Problems sind.

Null-Werte unterscheiden sich sowohl von undefinierten Werten als auch von ungültigen „ QCborValue “-Objekten. Die API erzeugt keine ungültigen „QCborValues“, diese können jedoch als Folge eines Parsing-Fehlers auftreten.

Siehe auch „ type()“, „ isUndefined()“ und „ isInvalid()“.

bool QCborValue::isRegularExpression() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ ein Muster eines regulären Ausdrucks enthält. Das Muster kann mit „ toRegularExpression()“ abgerufen werden.

Siehe auch type() und toRegularExpression().

bool QCborValue::isSimpleType() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ einem der einfachen CBOR-Typen entspricht. Der Typ selbst kann später mit „ type()“ abgerufen werden, selbst bei Typen, für die in der API keine Aufzählung vorhanden ist. Sie können auch mit der Überladung von „ isSimpleType “ (QCborSimpleType) überprüft werden.

Siehe auch QCborSimpleType, isSimpleType(QCborSimpleType) und toSimpleType().

bool QCborValue::isSimpleType(QCborSimpleType st) const

Gibt „true“ zurück, wenn dieses QCborValue vom Typ „einfacher Typ“ ist und toSimpleType() den Wert st zurückgeben würde; andernfalls „false“. Diese Funktion kann verwendet werden, um jeden einfachen CBOR-Typ zu überprüfen, auch solche, für die es in der API keine Aufzählung gibt. Für den einfachen Typ mit dem Wert 12 könnten Sie beispielsweise Folgendes schreiben:

value.isSimpleType(QCborSimpleType(12));

Dies ist eine überladene Funktion.

Siehe auch QCborValue::QCborValue(QCborSimpleType), isSimpleType(), isFalse(), isTrue(), isNull, isUndefined() und toSimpleType().

bool QCborValue::isString() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ vom Typ „string“ ist. Der String-Wert kann mit „ toString()“ abgerufen werden.

Siehe auch type() und toString().

bool QCborValue::isTag() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ vom Typ „Tag“ ist. Der Tag-Wert kann mit „ tag()“ und der mit dem Tag versehene Wert mit „ taggedValue()“ abgerufen werden.

Diese Funktion gibt auch für erweiterte Typen, die die API erkennt, „true“ zurück. Für Code, der erweiterte Typen direkt verarbeitet, bevor die Qt-API aktualisiert wird, um diese zu unterstützen, ist es möglich, das Paar aus Tag und Tag-Wert mithilfe von ` taggedValue()` neu zu erstellen.

Siehe auch type(), tag() und taggedValue().

bool QCborValue::isTrue() const

Gibt „true“ zurück, wenn dieser „ QCborValue “ ein Boolescher Wert mit dem Wert „true“ ist. Diese Funktion existiert, da Boolesche Werte in CBOR intern als zwei separate Typen gespeichert werden: einer für „false“ und einer für „true“.

Siehe auch „ type()“, „ isBool()“, „ isFalse()“ und „ toBool()“.

bool QCborValue::isUndefined() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ vom Typ „undefined“ ist.

Undefinierte Werte in CBOR werden verwendet, um fehlende Informationen anzuzeigen, die in der Regel auf eine vorherige Operation zurückzuführen sind, die nicht wie erwartet abgeschlossen wurde. Sie werden außerdem von den APIs „ QCborArray “ und „ QCborMap “ verwendet, um anzuzeigen, dass das gesuchte Element nicht gefunden wurde.

Undefinierte Werte unterscheiden sich von Nullwerten.

QCborValue Objekte mit undefinierten Werten unterscheiden sich zudem von ungültigen QCborValue -Objekten. Die API erzeugt keine ungültigen QCborValues, diese können jedoch infolge eines Parsing-Fehlers auftreten.

Siehe auch type(), isNull() und isInvalid().

bool QCborValue::isUrl() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ vom Typ „URL“ ist. Der URL-Wert kann mit „ toUrl()“ abgerufen werden.

Siehe auch type() und toUrl().

bool QCborValue::isUuid() const

Gibt „true“ zurück, wenn dieses „ QCborValue “ eine UUID enthält. Der Wert kann mit „ toUuid()“ abgerufen werden.

Siehe auch type() und toUuid().

[noexcept] void QCborValue::swap(QCborValue &other)

Tauscht diesen Wert mit „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

QCborTag QCborValue::tag(QCborTag defaultValue = QCborTag(-1)) const

Gibt das Tag dieses erweiterten „ QCborValue “-Objekts zurück, sofern es vom Typ „tag“ ist, andernfalls „ defaultValue “.

CBOR stellt erweiterte Typen dar, indem es eine Zahl (das Tag) mit einer gespeicherten Darstellung verknüpft. Diese Funktion gibt diese Zahl zurück. Um die Darstellung abzurufen, verwenden Sie ` taggedValue()`.

Siehe auch „ isTag()“, „ taggedValue()“, „ isDateTime()“, „ isUrl()“, „ isRegularExpression()“ und „ isUuid()“.

QCborValue QCborValue::taggedValue(const QCborValue &defaultValue = QCborValue()) const

Gibt den mit einem Tag versehenen Wert dieses erweiterten „ QCborValue “-Objekts zurück, sofern es vom Typ „tag“ ist; andernfalls „ defaultValue “.

CBOR stellt erweiterte Typen dar, indem es eine Zahl (das Tag) mit einer gespeicherten Darstellung verknüpft. Diese Funktion gibt diese Darstellung zurück. Um das Tag abzurufen, verwenden Sie „ tag()“.

Siehe auch „ isTag()“, „ tag()“, „ isDateTime()“, „ isUrl()“, „ isRegularExpression()“ und „ isUuid()“.

QCborArray QCborValue::toArray() const

QCborArray QCborValue::toArray(const QCborArray &defaultValue) const

Gibt den in diesem ` QCborValue` gespeicherten Array-Wert zurück, sofern dieser vom Typ Array ist. Andernfalls wird ` defaultValue` zurückgegeben.

Beachten Sie, dass diese Funktion keine Konvertierung von anderen Typen in ` QCborArray` durchführt.

Siehe auch „ isArray()“, „ isByteArray()“, „ isMap()“, „ isContainer()“ und „ toMap()“.

bool QCborValue::toBool(bool defaultValue = false) const

Gibt den in diesem „ QCborValue “ gespeicherten booleschen Wert zurück, sofern dieser vom Typ „Boolean“ ist. Andernfalls wird „ defaultValue “ zurückgegeben.

Siehe auch „ isBool()“, „ isTrue()“ und „ isFalse()“.

QByteArray QCborValue::toByteArray(const QByteArray &defaultValue = {}) const

Gibt den in diesem ` QCborValue` gespeicherten Byte-Array-Wert zurück, sofern dieser vom Typ „Byte-Array“ ist. Andernfalls wird ` defaultValue` zurückgegeben.

Beachten Sie, dass diese Funktion keine Konvertierung von anderen Typen in ` QByteArray` durchführt.

Siehe auch isByteArray(), isString() und toString().

QByteArray QCborValue::toCbor(QCborValue::EncodingOptions opt = NoTransformation) const

Kodiert dieses QCborValue -Objekt unter Verwendung der unter opt angegebenen Optionen in seine CBOR-Darstellung und gibt das Byte-Array zurück, das diese Darstellung enthält.

Diese Funktion schlägt nur dann fehl, wenn dieses ` QCborValue ` oder eines der darin enthaltenen Elemente – sofern es sich um eine Map oder ein Array handelt – ungültig ist. Ungültige Typen werden von der API normalerweise nicht erzeugt, können jedoch durch Dekodierungsfehler entstehen.

Standardmäßig führt diese Funktion keine Transformation der Werte in ` QCborValue` durch und schreibt alle Gleitkommazahlen direkt als Doppelpräzisionswerte (double) . Wenn die Option ` UseFloat ` angegeben ist, wird für alle Gleitkommazahlen, bei denen bei Verwendung dieser Darstellung kein Präzisionsverlust auftritt, Einzelpräzision (float) verwendet. Dies schließt Unendlichkeits- und NaN-Werte ein.

Ähnlich verhält es sich, wenn „ UseFloat16 “ angegeben ist: Diese Funktion versucht, Gleitkommazahlen mit halber Genauigkeit (qfloat16) zu verwenden, sofern die Umwandlung in diese Form keinen Genauigkeitsverlust zur Folge hat. Dies gilt immer für Unendlichkeitswerte und NaN-Werte.

Wird ` UseIntegers ` angegeben, werden für jeden Gleitkommawert, der eine tatsächliche Ganzzahl enthält, Ganzzahlen verwendet.

Siehe auch fromCbor(), fromVariant() und fromJsonValue().

void QCborValue::toCbor(QCborStreamWriter &writer, QCborValue::EncodingOptions opt = NoTransformation) const

Kodiert dieses QCborValue -Objekt unter Verwendung der in opt angegebenen Optionen in seine CBOR-Darstellung und überträgt es an den durch writer angegebenen Writer. Ein und derselbe Writer kann von mehreren QCborValues verwendet werden, beispielsweise um verschiedene Elemente eines größeren Arrays zu kodieren.

Diese Funktion schlägt nur dann fehl, wenn dieses ` QCborValue ` oder eines der darin enthaltenen Elemente – sofern es sich um eine Map oder ein Array handelt – ungültig ist. Ungültige Typen werden von der API normalerweise nicht erzeugt, können jedoch durch Dekodierungsfehler entstehen.

Standardmäßig führt diese Funktion keine Transformation der Werte in der ` QCborValue` durch und schreibt alle Gleitkommazahlen direkt als Typen mit doppelter Genauigkeit (binary64). Wenn die Option ` UseFloat ` angegeben ist, wird für jeden Gleitkommawert, bei dem bei Verwendung dieser Darstellung kein Präzisionsverlust auftritt, einfache Genauigkeit (binary32) verwendet. Dies schließt Unendlichkeitswerte und NaN-Werte ein.

Ebenso versucht diese Funktion bei Angabe von „ UseFloat16 “, Gleitkommazahlen mit halber Genauigkeit (binary16) zu verwenden, sofern die Umwandlung in diesen Typ zu keinem Genauigkeitsverlust führt. Dies gilt stets für Unendlichkeiten und NaN-Werte.

Wird „ UseIntegers “ angegeben, werden für jeden Gleitkommawert, der eine tatsächliche Ganzzahl enthält, Ganzzahlen verwendet.

Dies ist eine überladene Funktion.

Siehe auch „ fromCbor()“, „ fromVariant()“ und „ fromJsonValue()“.

QDateTime QCborValue::toDateTime(const QDateTime &defaultValue = {}) const

Gibt den in diesem ` QCborValue` gespeicherten Datums-/Zeitwert zurück, sofern es sich um den erweiterten Datums-/Zeittyp handelt. Andernfalls wird ` defaultValue` zurückgegeben.

Beachten Sie, dass diese Funktion keine Konvertierung von anderen Typen in „ QDateTime “ durchführt.

Siehe auch „ isDateTime()“, „ isTag()“ und „ taggedValue()“.

QString QCborValue::toDiagnosticNotation(QCborValue::DiagnosticNotationOptions opts = Compact) const

Erzeugt das dieser CBOR-Objekt entsprechende Objekt in der Diagnosenotation und gibt es zurück. Der Parameter „ opts “ steuert den Dialekt der Notation. Die Diagnosekonvention ist beim Debuggen nützlich, um dem Entwickler zu verdeutlichen, welcher Wert im „ QCborValue “ oder in einem CBOR-Stream gespeichert ist. Aus diesem Grund bietet die Qt-API keine Unterstützung für das Zurückparsen der Diagnosekonvention in das Speicherformat oder den CBOR-Stream, obwohl die Darstellung eindeutig ist und dies möglich wäre.

Die CBOR-Diagnosenotation ist in Abschnitt 6 des RFC 7049 spezifiziert. Es handelt sich um eine textuelle Darstellung des CBOR-Streams, die JSON sehr ähnlich ist, jedoch auch CBOR-Typen unterstützt, die in JSON nicht vorkommen. Das durch das Flag „ ExtendedFormat “ aktivierte erweiterte Format befindet sich derzeit in einigen IETF-Entwürfen und kann sich noch ändern.

Diese Funktion erzeugt die äquivalente Darstellung des Streams, die ` toCbor()` erzeugen würde, ohne dass dort eine Transformationsoption angegeben wurde. Dies bedeutet auch, dass diese Funktion möglicherweise keine Darstellung des Streams erzeugt, der zur Erstellung des Objekts verwendet wurde, wenn dieses mit ` fromCbor()` erstellt wurde, da diese Funktion möglicherweise Transformationen angewendet hat. Eine originalgetreue Darstellung eines Streams ohne Transformationen finden Sie im Beispiel „ cbordump “.

Siehe auch ` toCbor()` und ` QJsonDocument::toJson()`.

double QCborValue::toDouble(double defaultValue = 0) const

Gibt den in diesem ` QCborValue` gespeicherten Gleitkommawert zurück, sofern dieser vom Typ `Double` ist. Handelt es sich um einen Wert vom Typ `Integer`, gibt diese Funktion den in den Typ `Double` konvertierten ganzzahligen Wert zurück. In allen anderen Fällen wird ` defaultValue` zurückgegeben.

Siehe auch isDouble(), isInteger() und toInteger().

qint64 QCborValue::toInteger(qint64 defaultValue = 0) const

Gibt den in diesem ` QCborValue` gespeicherten ganzzahligen Wert zurück, sofern dieser vom Typ „Integer“ ist. Handelt es sich um den Typ „Double“, gibt diese Funktion den in eine Ganzzahl konvertierten Gleitkommawert zurück. In allen anderen Fällen wird ` defaultValue` zurückgegeben.

Siehe auch isInteger(), isDouble() und toDouble().

QJsonValue QCborValue::toJsonValue() const

Konvertiert dieses „ QCborValue “-Objekt in eine äquivalente Darstellung im JSON-Format und gibt es als „ QJsonValue “ zurück.

Bitte beachten Sie, dass CBOR einen umfangreicheren und breiteren Typensatz enthält als JSON, sodass bei dieser Konvertierung möglicherweise einige Informationen verloren gehen. Die folgende Tabelle vergleicht CBOR-Typen mit JSON-Typen und gibt an, ob Informationen verloren gehen können oder nicht.

CBOR-TypJSON-TypAnmerkungen
BoolBoolKein Datenverlust möglich
DoubleZahlUnendlichkeiten und NaN werden in Null umgewandelt; bei anderen Werten tritt kein Datenverlust auf
GanzzahlZahlBei der Konvertierung kann es zu Datenverlust kommen, wenn die Ganzzahl größer als253 oder kleiner als-253 ist.
NullNullKein Datenverlust möglich
UndefiniertNullTypinformationen verloren
ZeichenketteZeichenketteKein Datenverlust möglich
Byte-ArrayZeichenketteWird in eine verlustfreie Kodierung wie Base64url konvertiert, dabei geht jedoch die Unterscheidung zwischen Zeichenfolgen und Byte-Arrays verloren
Andere einfache TypenZeichenketteTypinformationen gehen verloren
ArrayArrayDie Konvertierung gilt für jeden enthaltenen Wert
MapObjektSchlüssel werden in Zeichenfolgen umgewandelt; Werte werden gemäß dieser Tabelle umgewandelt
Tags und erweiterte TypenSpezialDie Tag-Nummer selbst geht verloren und der mit einem Tag versehene Wert wird in JSON konvertiert

Informationen zur Konvertierung von CBOR-Map-Schlüsseln in Zeichenfolgen finden Sie unter QCborMap::toJsonObject().

Wenn dieses ` QCborValue ` den Wert `undefined` enthält, gibt diese Funktion ebenfalls ein `undefined`-` QJsonValue ` zurück. Beachten Sie, dass JSON keine undefinierten Werte unterstützt und undefinierte QJsonValues eine Erweiterung der Spezifikation darstellen. Sie können nicht in einem „ QJsonArray “ oder „ QJsonObject “ gespeichert werden, können jedoch von Funktionen zurückgegeben werden, um einen Fehler anzuzeigen. In allen anderen Fällen entsprechen sie dem Wert „null“.

Spezielle Behandlung von Tags und erweiterten Typen

Einige Tags werden speziell behandelt und verändern die Umwandlung des mit einem Tag versehenen Werts von CBOR in JSON. Die folgende Tabelle listet diese Sonderfälle auf:

TagCBOR-TypUmwandlung
ExpectedBase64urlByte-ArrayKodiert das Byte-Array als Base64url
ExpectedBase64Byte-ArrayKodiert das Byte-Array als Base64
ExpectedBase16Byte-ArrayKodiert das Byte-Array als Hexadezimalzahl
URLURL und ZeichenketteVerwendet ` QUrl::toEncoded()` zur Normalisierung der Kodierung in das vollständig kodierte Format der URL
UUIDUUID und Byte-ArrayVerwendet ` QUuid::toString()` zur Erstellung der Zeichenfolgenrepräsentation

Siehe auch ` fromJsonValue()`, ` toVariant()`, ` QCborArray::toJsonArray()` und ` QCborMap::toJsonObject()`.

QCborMap QCborValue::toMap() const

QCborMap QCborValue::toMap(const QCborMap &defaultValue) const

Gibt den in diesem ` QCborValue` gespeicherten Map-Wert zurück, sofern dieser vom Typ „Map“ ist. Andernfalls wird ` defaultValue` zurückgegeben.

Beachten Sie, dass diese Funktion keine Konvertierung von anderen Typen in ` QCborMap` durchführt.

Siehe auch „ isMap()“, „ isArray()“, „ isContainer()“ und „ toArray()“.

QRegularExpression QCborValue::toRegularExpression(const QRegularExpression &defaultValue = {}) const

Gibt den in diesem ` QCborValue` gespeicherten Wert des regulären Ausdrucks zurück, sofern es sich um den erweiterten Typ eines regulären Ausdrucksmusters handelt. Andernfalls wird ` defaultValue` zurückgegeben.

Beachten Sie, dass diese Funktion keine Konvertierung von anderen Typen in „ QRegularExpression “ durchführt.

Siehe auch „ isRegularExpression()“, „ isTag()“ und „ taggedValue()“.

QCborSimpleType QCborValue::toSimpleType(QCborSimpleType defaultValue = QCborSimpleType::Undefined) const

Gibt den einfachen Typ zurück, dem dieses „ QCborValue “ angehört, sofern es sich um einen einfachen Typ handelt. Ist es kein einfacher Typ, wird „ defaultValue “ zurückgegeben.

Die folgenden Typen sind einfache Typen, und diese Funktion gibt die aufgeführten Werte zurück:

Siehe auch „ type()“, „ isSimpleType()“, „ isBool()“, „ isTrue()“, „ isFalse()“, „ isNull()“ und „ isUndefined()“.

QString QCborValue::toString(const QString &defaultValue = {}) const

Gibt den in diesem ` QCborValue` gespeicherten Zeichenfolgenwert zurück, sofern dieser vom Typ „Zeichenfolge“ ist. Andernfalls wird ` defaultValue` zurückgegeben.

Beachten Sie, dass diese Funktion keine Konvertierung von anderen Typen in „ QString “ vornimmt.

Siehe auch „ toStringView()“, „ isString()“, „ isByteArray()“ und „ toByteArray()“.

[since 6.10] QAnyStringView QCborValue::toStringView(QAnyStringView defaultValue = {}) const

Gibt den in diesem ` QCborValue` gespeicherten Zeichenfolgenwert zurück, sofern dieser vom Typ `string` ist. Andernfalls wird ` defaultValue` zurückgegeben. Da ` QCborValue ` Zeichenfolgen entweder im US-ASCII-, UTF-8- oder UTF-16-Format speichert, kann die zurückgegebene ` QAnyStringView ` in einer dieser Kodierungen vorliegen.

Diese Funktion reserviert keinen Speicher. Der Rückgabewert ist bis zum nächsten Aufruf einer nicht-konstanten Memberfunktion für dieses Objekt gültig. Wenn dieses Objekt den Gültigkeitsbereich verlässt, ist der Rückgabewert bis zum nächsten Aufruf einer nicht-konstanten Memberfunktion für das übergeordnete CBOR-Objekt (Map oder Array) gültig.

Beachten Sie, dass diese Funktion keine Konvertierung von anderen Typen in „ QString “ durchführt.

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch ` toString()`, ` isString()`, ` isByteArray()` und ` toByteArray()`.

QUrl QCborValue::toUrl(const QUrl &defaultValue = {}) const

Gibt den in diesem ` QCborValue` gespeicherten URL-Wert zurück, sofern es sich um den erweiterten URL-Typ handelt. Andernfalls wird ` defaultValue` zurückgegeben.

Beachten Sie, dass diese Funktion keine Konvertierung von anderen Typen in „ QUrl “ durchführt.

Siehe auch „ isUrl()“, „ isTag()“ und „ taggedValue()“.

QUuid QCborValue::toUuid(const QUuid &defaultValue = {}) const

Gibt den in diesem ` QCborValue` gespeicherten UUID-Wert zurück, sofern es sich um den erweiterten UUID-Typ handelt. Andernfalls wird ` defaultValue` zurückgegeben.

Beachten Sie, dass diese Funktion keine Konvertierung von anderen Typen in „ QUuid “ durchführt.

Siehe auch isUuid(), isTag() und taggedValue().

QVariant QCborValue::toVariant() const

Konvertiert diesen Wert in einen nativen Qt-Typ und gibt den entsprechenden ` QVariant` zurück.

Die folgende Tabelle listet die Zuordnung zwischen ` QCborValue types ` und ` Qt meta types` auf.

CBOR-TypQt- oder C++-TypAnmerkungen
Ganzzahlqint64
Doubledouble
Boolbool
Nullstd::nullptr_t
Undefiniertkein Typ (QVariant())
Byte-ArrayQByteArray
ZeichenketteQString
ArrayQVariantListKonvertiert alle Werte rekursiv
MapQVariantMapSchlüsseltypen werden in Zeichenfolgen umgewandelt
Andere einfache TypenQCborSimpleType
DateTimeQDateTime
URLQUrl
RegularExpressionQRegularExpression
UUIDQUuid
Andere TagsSpezialDas Tag wird ignoriert und der mit dem Tag versehene Wert wird mithilfe dieser Funktion konvertiert

Beachten Sie, dass Werte sowohl in CBOR-Maps als auch in Arrays ebenfalls rekursiv mit dieser Funktion konvertiert und stattdessen in „ QVariantMap “ und „ QVariantList “ abgelegt werden. Die Werte „ QCborMap “ und „ QCborArray “ sind nicht in den QVariants gespeichert.

QVariantMaps haben im Gegensatz zu CBOR Zeichenfolgen-Schlüssel, sodass die Konvertierung von einem QCborMap in ein QVariantMap einen Schritt der „Zeichenfolgenumwandlung“ der Schlüsselwerte beinhaltet. Weitere Informationen finden Sie unter QCborMap::toJsonObject().

Siehe auch fromVariant(), toJsonValue(), QCborArray::toVariantList() und QCborMap::toVariantMap().

QCborValue::Type QCborValue::type() const

Gibt den Typ dieses QCborValue zurück. Der Typ kann später auch mit einer der „isXxx“-Funktionen abgerufen werden.

Siehe auch isInteger(), isByteArray(), isString(), isArray(), isMap(), isTag(), isFalse(), isTrue(), isBool(), isNull(), isUndefined, isDouble(), isDateTime(), isUrl(), isRegularExpression() und isUuid().

[noexcept] QCborValue &QCborValue::operator=(const QCborValue &other)

Ersetzt den Inhalt dieses QCborObject durch eine Kopie von other.

[noexcept] QCborValue &QCborValue::operator=(QCborValue &&other)

Verschiebt den Inhalt des Objekts other QCborValue in dieses Objekt und gibt die Ressourcen dieses Objekts frei. Gibt eine Referenz auf dieses Objekt zurück.

Dies ist eine überladene Funktion.

QCborValueRef QCborValue::operator[](const QString &key)

Gibt eine `QCborValueRef` zurück, mit der der Eintrag in dieser Map unter Verwendung der angegebenen ` key` gelesen oder geändert werden kann. Wenn diese ` QCborValue ` eine ` QCborMap` ist, entspricht diese Funktion dem entsprechenden Operator `[]` für diese Map.

Vor der Rückgabe der Referenz gilt: War dieses ` QCborValue ` ein Array, wird es zunächst in eine Map konvertiert (sodass ` map[i] ` für jeden Index ` array[i] ` ist, wobei ` i` und ` array[i]` gültig sind); andernfalls, wenn es keine Map war, wird es mit einer leeren Map überschrieben.

Siehe auch operator[](qint64), QCborMap::operator[], QCborMap::value() und QCborMap::find().

const QCborValue QCborValue::operator[](const QString &key) const

Wenn es sich bei diesem QCborValue um eine QCborMap handelt, wird nach Elementen gesucht, deren Wert mit dem Schlüssel key übereinstimmt. Wenn in der Map kein Schlüssel vorhanden ist, der mit key übereinstimmt, oder wenn dieses QCborValue -Objekt keine Map ist, wird der Wert „undefined“ zurückgegeben.

Diese Funktion entspricht:

value.toMap().value(key);

Siehe auch „ operator[]“ (qint64), „ QCborMap::operator[] “, „ QCborMap::value()“ und „ QCborMap::find()“.

QCborValueRef QCborValue::operator[](QLatin1StringView key)

Gibt eine `QCborValueRef` zurück, mit der der Eintrag in dieser Map unter Verwendung der angegebenen ` key` gelesen oder geändert werden kann. Wenn diese ` QCborValue ` ein ` QCborMap` ist, entspricht diese Funktion dem entsprechenden Operator `[]` für diese Map.

Vor der Rückgabe der Referenz gilt: War dieses ` QCborValue ` ein Array, wird es zunächst in eine Map konvertiert (sodass ` map[i] ` für jeden Index ` array[i] ` ist, wobei ` i` und ` array[i]` gültig sind); andernfalls, wenn es keine Map war, wird es mit einer leeren Map überschrieben.

Dies ist eine überladene Funktion.

Siehe auch operator[](qint64), QCborMap::operator[], QCborMap::value() und QCborMap::find().

QCborValueRef QCborValue::operator[](qint64 key)

Gibt eine `QCborValueRef` zurück, mit der der Eintrag in diesem Objekt – als Map oder Array – unter Verwendung des angegebenen ` key` gelesen oder geändert werden kann. Wenn dieser ` QCborValue ` ein ` QCborMap ` ist oder – für 0 <= key < 0x10000 – ein ` QCborArray`, entspricht diese Funktion dem entsprechenden Operator `[]` für diese Map oder dieses Array.

Vor der Rückgabe der Referenz: Wenn dieses „ QCborValue “ ein Array war, der Schlüssel jedoch außerhalb des zulässigen Bereichs liegt, wird das Array zunächst in eine Map umgewandelt (sodass „ map[i] “ für jeden Index „ array[i] “ ist, „ i “, mit gültigem „ array[i] “); andernfalls, wenn es keine Map war, wird es mit einer leeren Map überschrieben.

Dies ist eine überladene Funktion.

Siehe auch operator[], QCborMap::operator[], QCborMap::value(), QCborMap::find(), QCborArray::operator[] und QCborArray::at().

const QCborValue QCborValue::operator[](QLatin1StringView key) const

Wenn es sich bei diesem QCborValue um ein QCborMap handelt, wird nach Elementen gesucht, deren Wert mit key übereinstimmt. Wenn in der Map kein Schlüssel vorhanden ist, der mit key übereinstimmt, oder wenn dieses QCborValue -Objekt keine Map ist, wird der Wert „undefined“ zurückgegeben.

Diese Funktion entspricht:

value.toMap().value(key);

Dies ist eine überladene Funktion.

Siehe auch „ operator[]“ (qint64), „ QCborMap::operator[] “, „ QCborMap::value()“ und „ QCborMap::find()“.

const QCborValue QCborValue::operator[](qint64 key) const

Wenn es sich bei diesem QCborValue um ein QCborMap handelt, wird nach Elementen mit dem Wert gesucht, dessen Schlüssel mit key übereinstimmt. Handelt es sich um ein QCborArray, wird das Element mit dem Index key zurückgegeben. Wenn im Array oder in der Map kein passender Wert vorhanden ist oder wenn dieses QCborValue -Objekt kein Array oder keine Map ist, wird der Wert „undefined“ zurückgegeben.

Dies ist eine überladene Funktion.

Siehe auch „ operator[]“ , „ QCborMap::operator[] “, „ QCborMap::value()“, „ QCborMap::find()“, „ QCborArray::operator[] “ und „ QCborArray::at()“.

Verwandte Nichtmitglieder

[noexcept] bool operator!=(const QCborValue &lhs, const QCborValue &rhs)

Vergleicht lhs und rhs und gibt „true“ zurück, wenn sich die Inhalte unterscheiden, andernfalls „false“. Wenn jedes der Elemente QCborValue ein Array oder eine Map enthält, erfolgt der Vergleich rekursiv auf die darin enthaltenen Elemente.

Weitere Informationen zur CBOR-Gleichheit in Qt finden Sie unter QCborValue::compare().

Siehe auch compare(), QCborMap::operator==(), operator==() und operator<().

[noexcept] bool operator<(const QCborValue &lhs, const QCborValue &rhs)

Vergleicht lhs und rhs und gibt „true“ zurück, wenn lhs vor rhs sortiert werden soll, andernfalls „false“. Wenn jedes der Elemente QCborValue ein Array oder eine Map enthält, erfolgt der Vergleich rekursiv auf die darin enthaltenen Elemente.

Weitere Informationen zur CBOR-Sortierreihenfolge finden Sie unter QCborValue::compare().

Siehe auch compare(), QCborValue::operator==(), QCborMap::operator==(), operator==() und operator!=().

[noexcept] bool operator<=(const QCborValue &lhs, const QCborValue &rhs)

Vergleicht lhs und rhs und gibt „true“ zurück, wenn lhs vor rhs sortiert werden sollte oder mit rhs übereinstimmt; andernfalls „false“. Wenn jedes der Elemente QCborValue ein Array oder eine Map enthält, erfolgt der Vergleich rekursiv auf die darin enthaltenen Elemente.

Weitere Informationen zur CBOR-Sortierreihenfolge finden Sie unter QCborValue::compare().

Siehe auch compare(), QCborValue::operator<(), QCborMap::operator==(), operator==() und operator!=().

[noexcept] bool operator==(const QCborValue &lhs, const QCborValue &rhs)

Vergleicht lhs und rhs und gibt „true“ zurück, wenn sie denselben Inhalt haben, andernfalls „false“. Wenn jedes der Elemente QCborValue ein Array oder eine Map enthält, erfolgt der Vergleich rekursiv für die darin enthaltenen Elemente.

Weitere Informationen zur CBOR-Gleichheit in Qt finden Sie unter compare().

Siehe auch compare(), QCborMap::operator==(), operator!=() und operator<().

[noexcept] bool operator>(const QCborValue &lhs, const QCborValue &rhs)

Vergleicht lhs und rhs und gibt „true“ zurück, wenn lhs nach rhs sortiert werden sollte, andernfalls „false“. Wenn jedes QCborValue ein Array oder eine Map enthält, erfolgt der Vergleich rekursiv auf die darin enthaltenen Elemente.

Weitere Informationen zur CBOR-Sortierreihenfolge finden Sie unter QCborValue::compare().

Siehe auch compare(), QCborValue::operator>=(), QCborMap::operator==(), operator==() und operator!=().

[noexcept] bool operator>=(const QCborValue &lhs, const QCborValue &rhs)

Vergleicht lhs und rhs und gibt „true“ zurück, wenn lhs nach rhs sortiert werden sollte oder mit rhs übereinstimmt; andernfalls „false“. Wenn jedes der Elemente QCborValue ein Array oder eine Map enthält, erfolgt der Vergleich rekursiv für die darin enthaltenen Elemente.

Weitere Informationen zur CBOR-Sortierreihenfolge finden Sie unter QCborValue::compare().

Siehe auch compare(), QCborValue::operator>(), QCborMap::operator==(), operator==() und operator!=().

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