Auf dieser Seite

CBOR-Unterstützung in Qt

Qt bietet Unterstützung für den Umgang mit CBOR-Daten. CBOR ist ein binäres Format zur Speicherung von Daten, das eine Obermenge der in JSON verfügbaren Typen umfasst, jedoch kompakter ist.

Die CBOR-Unterstützung in Qt bietet eine benutzerfreundliche C++-API zum Parsen, Bearbeiten und Speichern von CBOR-Daten.

Weitere Details zum CBOR-Datenformat finden Sie in RFC 7049.

Übersicht

CBOR ist ein Format zur Speicherung strukturierter Daten. Es verfügt über drei Gruppen integrierter Datentypen:

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

Darüber hinaus kann CBOR einen „Tag“ hinzufügen, um die Bedeutung des Typs zu erweitern. Die Container-Typen können Basistypen, zeichenfolgenähnliche Typen und Container enthalten.

Die CBOR-Klassen

Die Klasse „QCborValue“

Die Klasse „ QCborValue “ repräsentiert jeden beliebigen CBOR-Typ. Sie verfügt außerdem über eine einfache API zum Lesen und Schreiben in Objekte vom Typ „ QCborStreamReader “ und „ QCborStreamWriter “ sowie zur Bearbeitung solcher Objekte im Speicher mithilfe von „ QCborArray “ und „ QCborMap “. Die CborValue-API ist gegenüber dem vollständigen CBOR-Datentyp vereinfacht und stellt alle Ganzzahlen stets als „ qint64 “ und alle Gleitkommazahlen als „ double “ dar. Dies bedeutet, dass „ QCborValue “ keine CBOR-Ganzzahlwerte außerhalb des Bereichs von „ qint64 “ (-2^63 bis 2^63-1) darstellen kann. Beim Erstellen eines CBOR-Streams kann ` QCborValue::toCbor()` so konfiguriert werden, dass versucht wird, die kürzeren Gleitkomma-Darstellungen mit einfacher und halber Genauigkeit zu schreiben.

Die Klasse „QCborArray“

Die Klasse „ QCborArray “ dient zur Speicherung eines Arrays von „ QCborValue “-Objekten. Ein „ QCborValue “-Objekt kann ein „ QCborArray “-Objekt enthalten. Sie verfügt über Funktionen zur Konvertierung in und aus „ QVariantList “, „ QStringList “ und „ QJsonArray “.

Die Klasse „QCborMap“

Die Klasse „ QCborMap “ dient zur Speicherung einer Zuordnung von „ QCborValue “-Objekten. Ein „ QCborValue “-Objekt kann ein „ QCborMap “-Objekt enthalten. Es verfügt über Funktionen zur Konvertierung in und aus „ QVariantMap “, „ QVariantHash “ und „ QJsonObject “, kann jedoch Schlüssel beliebigen Typs enthalten, nicht nur „ QString “.

Die Klasse „QCborStreamReader“

Die Klasse „ QCborStreamReader “ ist eine Low-Level-API zum Lesen von CBOR-Daten aus einem „ QIODevice “, einem „ QByteArray “ oder einem Zeiger auf Speicher. Sie verfügt über eine API, die der Klasse „ QXmlStreamReader “ ähnelt.

Die Klasse „QCborStreamWriter“

Die Klasse „ QCborStreamWriter “ ist eine Low-Level-API zum Schreiben von CBOR-Daten in eine „ QIODevice “ oder eine „ QByteArray “. Sie verfügt über eine API, die der der Klasse „ QXmlStreamWriter “ ähnelt.

Siehe auch „Parsen und Anzeigen von CBOR-Daten“, „Serialisierungs-Konverter“ sowie „Speichern und Laden eines Spiels“.

QCborArray

Dient zur Speicherung eines Arrays von CBOR-Elementen

QCborArray::ConstIterator

Die Klasse `QCborArray::ConstIterator` stellt einen konstanten Iterator im STL-Stil für `QCborArray` bereit

QCborArray::Iterator

Die Klasse `QCborArray::Iterator` stellt einen nicht-konstanten Iterator im STL-Stil für `QCborArray` bereit

QCborMap

Dient zur Speicherung eines assoziativen Containers, der in CBOR dargestellt werden kann

QCborMap::ConstIterator

Die Klasse `QCborMap::ConstIterator` stellt einen konstanen Iterator im STL-Stil für `QCborMap` bereit

QCborMap::Iterator

Die Klasse `QCborMap::Iterator` stellt einen nicht-konstanten Iterator im STL-Stil für `QCborMap` bereit

QCborParserError

Wird von `QCborValue` verwendet, um einen Parsing-Fehler zu melden

QCborStreamReader

Einfacher CBOR-Stream-Decoder, der entweder mit einem `QByteArray` oder einem `QIODevice` arbeitet

QCborStreamWriter

Einfacher CBOR-Encoder, der auf einem Einweg-Stream arbeitet

QCborValue

Kapseln eines Werts in CBOR

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