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.
Utilisée pour contenir un tableau d’éléments CBOR | |
La classe `QCborArray::ConstIterator` fournit un itérateur `const` de type STL pour `QCborArray` | |
La classe `QCborArray::Iterator` fournit un itérateur non-const de type STL pour `QCborArray` | |
Utilisé pour contenir un conteneur associatif représentable en CBOR | |
La classe `QCborMap::ConstIterator` fournit un itérateur const de type STL pour `QCborMap` | |
La classe `QCborMap::Iterator` fournit un itérateur non constant de type STL pour `QCborMap` | |
Utilisé par QCborValue pour signaler une erreur d’analyse | |
Décodeur de flux CBOR simple, fonctionnant soit sur un `QByteArray`, soit sur un `QIODevice` | |
Encodeur CBOR simple fonctionnant sur un flux unidirectionnel | |
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.