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, QCborValue::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, QVariantMap, 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▲
Contents▲
-
QCborArray: The QCborArray class is used to hold an array of CBOR elements.
-
QCborArray::ConstIterator: The QCborArray::ConstIterator class provides an STL-style const iterator for QCborArray.
-
QCborArray::Iterator: The QCborArray::Iterator class provides an STL-style non-const iterator for QCborArray.
-
QCborMap: The QCborMap class is used to hold an associative container representable in CBOR.
-
QCborMap::ConstIterator: The QCborMap::ConstIterator class provides an STL-style const iterator for QCborMap.
-
QCborMap::Iterator: The QCborMap::Iterator class provides an STL-style non-const iterator for QCborMap.
-
QCborParserError: The QCborParserError is used by QCborValue to report a parsing error.
-
QCborStreamReader: The QCborStreamReader class is a simple CBOR stream decoder, operating on either a QByteArray or QIODevice.
-
QCborStreamWriter: The QCborStreamWriter class is a simple CBOR encoder operating on a one-way stream.
-
QCborValue: The QCborValue class encapsulates a value in CBOR.