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
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.
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.
The QCborStreamReader class is a simple CBOR stream decoder, operating on either a QByteArray or QIODevice.
The QCborStreamWriter class is a simple CBOR encoder operating on a one-way stream.
The QCborValue class encapsulates a value in CBOR.
The QCborParserError is used by QCborValue to report a parsing error.