CBOR Support in Qt

An overview of CBOR support in Qt.

Qt provides support for dealing with CBOR data. CBOR is a binary format to store data that has a superset of the types available in JSON, but is more compact.

The CBOR support in Qt provides an easy to use C++ API to parse, modify and save CBOR data.

More details about the CBOR data format can be found in RFC 7049.

Overview

CBOR is a format to store structured data. It has three groups of built-in types:

  • Basic types: integers, floating point, boolean, null, etc.

  • String-like types: strings and byte arrays

  • Containers: arrays and maps

In addition, CBOR can add a “tag” to extend the meaning of the type. The container types can contain basic types, string-like types and containers.

The CBOR Classes

The QCborValue Class

The QCborValue class represents any CBOR type. It also has a simple API for reading and writing to QCborStreamReader and QCborStreamWriter objects, as well as manipulating such objects in memory, with the help of QCborArray and QCborMap . The CborValue API is simplified from the full CBOR data type and always represents all integers as qint64 and all floating-point as double. This means QCborValue is unable to represent CBOR integer values outside of the range of qint64 (-2^63 to 2^63-1). When creating a CBOR stream, toCbor() can be configured to attempt to write the shorter single- and half-precision floating-point representations.

The QCborArray Class

The QCborArray class is used to hold an array of QCborValue objects. A QCborValue object can contain a QCborArray object. It has functions for converting to and from QVariantList , QStringList , QJsonArray .

The QCborMap Class

The QCborMap class is used to hold an map of QCborValue objects. A QCborValue object can contain a QCborMap object. It has functions for converting to and from QVariantMap , QVariantHash , and QJsonObject , but it can have keys of any type, not just QString .

The QCborStreamReader Class

The QCborStreamReader class is a low level API for reading CBOR data from a QIODevice , a QByteArray , or a pointer to memory. It has an API similar to the QXmlStreamReader class.

The QCborStreamWriter Class

The QCborStreamWriter class is a low level API for writing CBOR data to a QIODevice or a QByteArray . It has an API similar to the QXmlStreamWriter class.

See also

Parsing and displaying CBOR data Serialization Converter Saving and Loading a Game

PySide6.QtCore.QCborArray

The QCborArray class is used to hold an array of CBOR elements.

QCborArray.Iterator

The QCborArray::Iterator class provides an STL-style non-const iterator for QCborArray.

QCborArray.ConstIterator

The QCborArray::ConstIterator class provides an STL-style const iterator for QCborArray.

PySide6.QtCore.QCborMap

The QCborMap class is used to hold an associative container representable in CBOR.

QCborMap.Iterator

The QCborMap::Iterator class provides an STL-style non-const iterator for QCborMap.

QCborMap.ConstIterator

The QCborMap::ConstIterator class provides an STL-style const iterator for QCborMap.

PySide6.QtCore.QCborStreamReader

The QCborStreamReader class is a simple CBOR stream decoder, operating on either a QByteArray or QIODevice.

PySide6.QtCore.QCborStreamWriter

The QCborStreamWriter class is a simple CBOR encoder operating on a one-way stream.

PySide6.QtCore.QCborValue

The QCborValue class encapsulates a value in CBOR.

PySide6.QtCore.QCborParserError

The QCborParserError is used by QCborValue to report a parsing error.