Sur cette page

Prise en charge de CBOR dans Qt

Qt prend en charge le traitement des données CBOR. CBOR est un format binaire permettant de stocker des données qui dispose d'un sur-ensemble des types disponibles dans JSON, tout en étant plus compact.

La prise en charge de CBOR dans Qt fournit une API C++ facile à utiliser pour analyser, modifier et enregistrer des données CBOR.

Pour plus de détails sur le format de données CBOR, consultez la RFC 7049.

Présentation

CBOR est un format permettant de stocker des données structurées. Il comporte trois groupes de types intégrés :

  • Types de base : entiers, nombres à virgule flottante, booléens, null, etc.
  • Types de type chaîne : chaînes de caractères et tableaux d'octets
  • Conteneurs : tableaux et tables

De plus, CBOR permet d'ajouter une « balise » pour étendre la signification d'un type. Les types conteneurs peuvent contenir des types de base, des types de type chaîne et d'autres conteneurs.

Les classes CBOR

La classe QCborValue

La classe ` QCborValue ` représente n'importe quel type CBOR. Elle dispose également d'une API simple pour lire et écrire dans des objets ` QCborStreamReader ` et ` QCborStreamWriter `, ainsi que pour manipuler ces objets en mémoire, à l'aide de ` QCborArray ` et ` QCborMap`. L’API CborValue est une version simplifiée du type de données CBOR complet et représente toujours tous les entiers sous la forme qint64 et tous les nombres à virgule flottante sous la forme double. Cela signifie qu’ QCborValue ne peut pas représenter les valeurs entières CBOR situées en dehors de la plage définie par qint64 (-2^63 à 2^63-1). Lors de la création d’un flux CBOR, la fonction ` QCborValue::toCbor()` peut être configurée pour tenter d’écrire les représentations à virgule flottante de précision simple et demi-précision, plus courtes.

La classe QCborArray

La classe ` QCborArray ` sert à contenir un tableau d’objets ` QCborValue `. Un objet ` QCborValue ` peut contenir un objet ` QCborArray `. Elle dispose de fonctions permettant la conversion vers et depuis les formats ` QVariantList`, ` QStringList` et ` QJsonArray`.

La classe QCborMap

La classe ` QCborMap ` sert à contenir une carte d’objets ` QCborValue `. Un objet ` QCborValue ` peut contenir un objet ` QCborMap `. Elle dispose de fonctions permettant la conversion vers et depuis ` QVariantMap`, ` QVariantHash` et ` QJsonObject`, mais elle peut contenir des clés de n’importe quel type, et pas uniquement ` QString`.

La classe QCborStreamReader

La classe ` QCborStreamReader ` est une API de bas niveau permettant de lire des données CBOR à partir d’un ` QIODevice`, d’un ` QByteArray` ou d’un pointeur vers la mémoire. Son API est similaire à celle de la classe ` QXmlStreamReader `.

La classe QCborStreamWriter

La classe ` QCborStreamWriter ` est une API de bas niveau permettant d’écrire des données CBOR dans un ` QIODevice ` ou un ` QByteArray`. Son API est similaire à celle de la classe ` QXmlStreamWriter `.

Voir également Analyse et affichage des données CBOR, Convertisseur de sérialisation et Enregistrement et chargement d’une partie.

QCborArray

Utilisée pour contenir un tableau d’éléments CBOR

QCborArray::ConstIterator

La classe `QCborArray::ConstIterator` fournit un itérateur `const` de type STL pour `QCborArray`

QCborArray::Iterator

La classe `QCborArray::Iterator` fournit un itérateur non-const de type STL pour `QCborArray`

QCborMap

Utilisé pour contenir un conteneur associatif représentable en CBOR

QCborMap::ConstIterator

La classe `QCborMap::ConstIterator` fournit un itérateur const de type STL pour `QCborMap`

QCborMap::Iterator

La classe `QCborMap::Iterator` fournit un itérateur non constant de type STL pour `QCborMap`

QCborParserError

Utilisé par QCborValue pour signaler une erreur d’analyse

QCborStreamReader

Décodeur de flux CBOR simple, fonctionnant soit sur un `QByteArray`, soit sur un `QIODevice`

QCborStreamWriter

Encodeur CBOR simple fonctionnant sur un flux unidirectionnel

QCborValue

Encapsule une valeur au format 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.