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.IteratorThe QCborArray::Iterator class provides an STL-style non-const iterator for QCborArray.
QCborArray.ConstIteratorThe 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.IteratorThe QCborMap::Iterator class provides an STL-style non-const iterator for QCborMap.
QCborMap.ConstIteratorThe 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.