QJsonValue Class
La classe QJsonValue encapsule une valeur en JSON. Plus d'informations...
| En-tête : | #include <QJsonValue> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake : | QT += core |
- Liste de tous les membres, y compris les membres hérités
- QJsonValue fait partie de JSON Support in Qt et Implicitly Shared Classes.
Cette classe est comparable à l 'égalité.
Cette classe est comparable à QJsonValueConstRef et QJsonValueRef.
Remarque : Toutes les fonctions de cette classe sont réentrantes.
Types publics
(since 6.9) | JsonFormat |
| enum | Type { Null, Bool, Double, String, Array, …, Undefined } |
Fonctions publiques
| QJsonValue(QJsonValue::Type type = Null) | |
| QJsonValue(QLatin1StringView s) | |
| QJsonValue(bool b) | |
| QJsonValue(const QJsonArray &a) | |
| QJsonValue(const QJsonObject &o) | |
| QJsonValue(const QString &s) | |
| QJsonValue(const char *s) | |
| QJsonValue(double v) | |
(since 6.3) | QJsonValue(QJsonArray &&a) |
(since 6.3) | QJsonValue(QJsonObject &&o) |
| QJsonValue(int v) | |
| QJsonValue(qint64 v) | |
| QJsonValue(const QJsonValue &other) | |
| QJsonValue(QJsonValue &&other) | |
| ~QJsonValue() | |
| bool | isArray() const |
| bool | isBool() const |
| bool | isDouble() const |
| bool | isNull() const |
| bool | isObject() const |
| bool | isString() const |
| bool | isUndefined() const |
| void | swap(QJsonValue &other) |
| QJsonArray | toArray(const QJsonArray &defaultValue) const |
| QJsonArray | toArray() const |
| bool | toBool(bool defaultValue = false) const |
| double | toDouble(double defaultValue = 0) const |
| int | toInt(int defaultValue = 0) const |
(since 6.0) qint64 | toInteger(qint64 defaultValue = 0) const |
(since 6.9) QByteArray | toJson(QJsonValue::JsonFormat format = JsonFormat::Indented) const |
| QJsonObject | toObject(const QJsonObject &defaultValue) const |
| QJsonObject | toObject() const |
| QString | toString() const |
| QString | toString(const QString &defaultValue) const |
(since 6.10) QAnyStringView | toStringView(QAnyStringView defaultValue = {}) const |
| QVariant | toVariant() const |
| QJsonValue::Type | type() const |
| QJsonValue & | operator=(QJsonValue &&other) |
| QJsonValue & | operator=(const QJsonValue &other) |
| const QJsonValue | operator[](const QString &key) const |
| const QJsonValue | operator[](qsizetype i) const |
| const QJsonValue | operator[](QLatin1StringView key) const |
| const QJsonValue | operator[](QStringView key) const |
Membres publics statiques
(since 6.9) QJsonValue | fromJson(QByteArrayView json, QJsonParseError *error = nullptr) |
| QJsonValue | fromVariant(const QVariant &variant) |
Non-membres associés
| bool | operator!=(const QJsonValue &lhs, const QJsonValue &rhs) |
| bool | operator==(const QJsonValue &lhs, const QJsonValue &rhs) |
Description détaillée
Une valeur en JSON peut être l'un des 6 types de base :
JSON est un format permettant de stocker des données structurées. Il comporte 6 types de données de base :
- bool QJsonValue::Bool
- double QJsonValue::Double
- chaîne de caractères QJsonValue::String
- tableau QJsonValue::Array
- objet QJsonValue::Object
- nul QJsonValue::Null
Une valeur peut représenter n'importe lequel des types de données ci-dessus. En outre, QJsonValue dispose d'un indicateur spécial pour représenter les valeurs non définies. Il peut être interrogé à l'aide de isUndefined().
Le type de la valeur peut être demandé avec type() ou des accesseurs comme isBool(), isString(), etc. De même, la valeur peut être convertie vers le type qu'elle contient en utilisant toBool(), toString(), etc.
Les valeurs sont strictement typées en interne et, contrairement à QVariant, ne tenteront pas d'effectuer des conversions de type implicites. Cela implique que la conversion vers un type qui n'est pas stocké dans la valeur renverra une valeur de retour construite par défaut.
QJsonValueRef
QJsonValueRef est une classe d'aide pour QJsonArray et QJsonObject. Lorsque vous obtenez un objet de type QJsonValueRef, vous pouvez l'utiliser comme s'il s'agissait d'une référence à une QJsonValue. Si vous l'assignez, l'assignation s'appliquera à l'élément de QJsonArray ou QJsonObject à partir duquel vous avez obtenu la référence.
Les méthodes suivantes renvoient QJsonValueRef:
- QJsonArray::operator[](qsizetype i)
- QJsonObject::operator[](const QString & key) const
Voir aussi Support JSON dans Qt et Sauvegarde et chargement d'un jeu.
Documentation sur les types de membres
[alias, since 6.9] QJsonValue::JsonFormat
Identique à QJsonDocument::JsonFormat.
Ce typedef a été introduit dans Qt 6.9.
enum QJsonValue::Type
Cette énumération décrit le type de la valeur JSON.
| Constante | Valeur | Description de la valeur |
|---|---|---|
QJsonValue::Null | 0x0 | Valeur nulle |
QJsonValue::Bool | 0x1 | Une valeur booléenne. Utilisez toBool() pour la convertir en valeur booléenne. |
QJsonValue::Double | 0x2 | Une valeur numérique. Utilisez toDouble() pour convertir en double, ou toInteger() pour convertir en qint64. |
QJsonValue::String | 0x3 | Une chaîne de caractères. Utilisez toString() pour convertir en QString. |
QJsonValue::Array | 0x4 | Un tableau. Utilisez toArray() pour convertir en QJsonArray. |
QJsonValue::Object | 0x5 | Un objet. Utilisez toObject() pour convertir en QJsonObject. |
QJsonValue::Undefined | 0x80 | La valeur est indéfinie. Cette valeur est généralement renvoyée comme condition d'erreur, lorsque l'on essaie de lire une valeur hors limites dans un tableau ou une clé inexistante dans un objet. |
Documentation sur les fonctions membres
QJsonValue::QJsonValue(QJsonValue::Type type = Null)
Crée une QJsonValue de type type.
Par défaut, une valeur Null est créée.
QJsonValue::QJsonValue(QLatin1StringView s)
Crée une valeur de type String, avec la chaîne Latin-1 vue par s.
QJsonValue::QJsonValue(bool b)
Crée une valeur de type Bool, avec la valeur b.
QJsonValue::QJsonValue(const QJsonArray &a)
Crée une valeur de type tableau, avec la valeur a.
QJsonValue::QJsonValue(const QJsonObject &o)
Crée une valeur de type Object, avec la valeur o.
QJsonValue::QJsonValue(const QString &s)
Crée une valeur de type String, avec la valeur s.
QJsonValue::QJsonValue(const char *s)
Crée une valeur de type String avec la valeur s, en supposant un encodage UTF-8 de l'entrée.
Vous pouvez désactiver ce constructeur en définissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications.
QJsonValue::QJsonValue(double v)
Crée une valeur de type Double, avec la valeur v.
[noexcept, since 6.3] QJsonValue::QJsonValue(QJsonArray &&a)
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.3.
[noexcept, since 6.3] QJsonValue::QJsonValue(QJsonObject &&o)
Il s'agit d'une fonction surchargée.
Cette fonction a été introduite dans Qt 6.3.
QJsonValue::QJsonValue(int v)
Crée une valeur de type Double, avec la valeur v.
Il s'agit d'une fonction surchargée.
QJsonValue::QJsonValue(qint64 v)
Crée une valeur de type Double, avec la valeur v.
Cette valeur est stockée en interne sous la forme d'un entier de 64 bits et conserve donc toute sa précision tant qu'elle est récupérée avec toInteger(). Cependant, la récupération de sa valeur avec toDouble() entraînera une perte de précision à moins que la valeur ne soit comprise entre ±2^53.
Il s'agit d'une fonction surchargée.
Voir aussi toInteger() et toDouble().
[noexcept] QJsonValue::QJsonValue(const QJsonValue &other)
Crée une copie de other.
[noexcept] QJsonValue::QJsonValue(QJsonValue &&other)
Move-construit une QJsonValue à partir de other.
[noexcept] QJsonValue::~QJsonValue()
Détruit la valeur.
[static, since 6.9] QJsonValue QJsonValue::fromJson(QByteArrayView json, QJsonParseError *error = nullptr)
Analyse json en tant que valeur JSON encodée en UTF-8 et crée un QJsonValue à partir de cette valeur.
Retourne un QJsonValue valide si l'analyse réussit. En cas d'échec, la valeur retournée sera undefined, et la variable optionnelle error contiendra des détails supplémentaires sur l'erreur.
Cette fonction a été introduite dans Qt 6.9.
Voir aussi QJsonParseError, isUndefined(), et toJson().
[static] QJsonValue QJsonValue::fromVariant(const QVariant &variant)
Convertit variant en QJsonValue et le renvoie.
La conversion convertira les types QVariant comme suit :
| Type de source | Type de destination |
|---|---|
| QJsonValue::Null | |
| QJsonValue::Bool | |
| QJsonValue::Double | |
| QJsonValue::String | |
| QJsonValue::Array | |
| QJsonValue::Object | |
| QJsonValue::String. La conversion utilisera QUrl::toString() avec l'indicateur QUrl::FullyEncoded, afin d'assurer une compatibilité maximale dans l'analyse de l'URL. | |
| QJsonValue::String. Depuis Qt 5.11, la chaîne résultante ne comprendra pas d'accolades | |
| Quel que soit le type retourné par QCborValue::toJsonValue(). | |
| QJsonValue::Array. Voir QCborValue::toJsonValue() pour les restrictions de conversion. | |
| QJsonValue::Map. Voir QCborValue::toJsonValue() pour les restrictions de conversion et la "stringification" des clés de la carte. |
Perte d'informations et autres types
QVariant peuvent contenir plus d'informations qu'il n'est possible d'en représenter dans JSON. Si le QVariant n'est pas l'un des types ci-dessus, la conversion n'est pas garantie et est susceptible de changer dans les futures versions de Qt, comme ce fut le cas pour l'UUID. Le code doit s'efforcer de ne pas utiliser d'autres types que ceux listés ci-dessus.
Si QVariant::isNull() renvoie vrai, un QJsonValue nul est renvoyé ou inséré dans la liste ou l'objet, quel que soit le type porté par QVariant. Notez que le changement de comportement dans Qt 6.0 affectant QVariant::isNull() affecte également cette fonction.
Une valeur en virgule flottante qui est soit une infinité soit NaN sera convertie en une valeur JSON nulle. Depuis Qt 6.0, QJsonValue peut stocker la précision complète de n'importe quel entier signé de 64 bits sans perte, mais dans les versions précédentes, les valeurs en dehors de la plage de ±2^53 peuvent perdre de la précision. Les valeurs 64 bits non signées supérieures ou égales à 2^63 perdront leur précision ou se transformeront en valeurs négatives, c'est pourquoi QMetaType::ULongLong doit être évité.
Pour les autres types non listés ci-dessus, une conversion en chaîne de caractères sera tentée, généralement mais pas toujours en appelant QVariant::toString(). Si la conversion échoue, la valeur est remplacée par une valeur JSON nulle. Notez que QVariant::toString() est également déficitaire pour la majorité des types. Par exemple, si QVariant représente des données brutes de type tableau d'octets, il est recommandé de les pré-encoder en Base64 (ou un autre encodage sans perte), sinon une conversion avec perte en utilisant QString::fromUtf8() sera utilisée.
Veuillez noter que les conversions via QVariant::toString() sont susceptibles d'être modifiées à tout moment. Il se peut que QVariant et QJsonValue soient étendus à l'avenir pour prendre en charge davantage de types, ce qui entraînera une modification de la manière dont cette fonction effectue les conversions.
Voir également toVariant() et QCborValue::fromVariant().
bool QJsonValue::isArray() const
Retourne true si la valeur contient un tableau.
Voir aussi toArray().
bool QJsonValue::isBool() const
Renvoie true si la valeur contient un booléen.
Voir aussi toBool().
bool QJsonValue::isDouble() const
Renvoie true si la valeur contient un double.
Voir aussi toDouble().
bool QJsonValue::isNull() const
Renvoie true si la valeur est nulle.
bool QJsonValue::isObject() const
Renvoie true si la valeur contient un objet.
Voir aussi toObject().
bool QJsonValue::isString() const
Renvoie true si la valeur contient une chaîne de caractères.
Voir aussi toString().
bool QJsonValue::isUndefined() const
Renvoie true si la valeur n'est pas définie. Cela peut se produire dans certains cas d'erreur, par exemple lors de l'accès à une clé non existante dans une base de données QJsonObject.
[noexcept] void QJsonValue::swap(QJsonValue &other)
Remplace cette valeur par other. Cette opération est très rapide et n'échoue jamais.
QJsonArray QJsonValue::toArray(const QJsonArray &defaultValue) const
Convertit la valeur en tableau et la renvoie.
Si type() n'est pas un tableau, c'est defaultValue qui sera renvoyé.
QJsonArray QJsonValue::toArray() const
Convertit la valeur en un tableau et la renvoie.
Si type() n'est pas un tableau, QJsonArray() sera renvoyé.
Il s'agit d'une fonction surchargée.
bool QJsonValue::toBool(bool defaultValue = false) const
Convertit la valeur en bool et la renvoie.
Si type() n'est pas bool, c'est defaultValue qui sera renvoyé.
double QJsonValue::toDouble(double defaultValue = 0) const
Convertit la valeur en double et la renvoie.
Si type() n'est pas Double, c'est defaultValue qui sera renvoyé.
int QJsonValue::toInt(int defaultValue = 0) const
Convertit la valeur en un int et la renvoie.
Si type() n'est pas Double ou si la valeur n'est pas un nombre entier, defaultValue sera renvoyé.
[since 6.0] qint64 QJsonValue::toInteger(qint64 defaultValue = 0) const
Convertit la valeur en un entier et la renvoie.
Si type() n'est pas Double ou si la valeur n'est pas un nombre entier représentable par qint64, defaultValue sera renvoyé.
Cette fonction a été introduite dans Qt 6.0.
[since 6.9] QByteArray QJsonValue::toJson(QJsonValue::JsonFormat format = JsonFormat::Indented) const
Convertit l'adresse QJsonValue en une valeur JSON encodée en UTF-8 dans l'adresse format fournie.
Cette fonction a été introduite dans Qt 6.9.
Voir aussi fromJson() et JsonFormat.
QJsonObject QJsonValue::toObject(const QJsonObject &defaultValue) const
Convertit la valeur en objet et la renvoie.
Si type() n'est pas Object, c'est defaultValue qui sera renvoyé.
QJsonObject QJsonValue::toObject() const
Convertit la valeur en objet et la renvoie.
Si type() n'est pas Object, QJsonObject() sera renvoyé.
Il s'agit d'une fonction surchargée.
QString QJsonValue::toString() const
Convertit la valeur en QString et la renvoie.
Si type() n'est pas String, un QString nul sera renvoyé.
Voir aussi QString::isNull().
QString QJsonValue::toString(const QString &defaultValue) const
Convertit la valeur en QString et la renvoie.
Si type() n'est pas String, c'est defaultValue qui sera renvoyé.
Voir aussi toStringView().
[since 6.10] QAnyStringView QJsonValue::toStringView(QAnyStringView defaultValue = {}) const
Renvoie la valeur de la chaîne de caractères stockée sur ce site QJsonValue, si elle est de type string. Sinon, il renvoie defaultValue. Comme QJsonValue stocke les chaînes de caractères en US-ASCII, UTF-8 ou UTF-16, la valeur renvoyée par QAnyStringView peut être dans n'importe lequel de ces encodages.
Cette fonction n'alloue pas de mémoire. La valeur de retour est valide jusqu'au prochain appel à une fonction membre non-const sur cet objet. Si cet objet sort du champ d'application, la valeur de retour est valide jusqu'au prochain appel à une fonction membre non-const sur l'objet ou le tableau JSON parent.
Cette fonction a été introduite dans Qt 6.10.
Voir aussi toString().
QVariant QJsonValue::toVariant() const
Convertit la valeur en QVariant().
Les types QJsonValue seront convertis comme suit :
| Constante | Description |
|---|---|
Null | QMetaType::Nullptr |
Bool | QMetaType::Bool |
Double | QMetaType::Double ou QMetaType::LongLong |
String | QString |
Array | QVariantList |
Object | QVariantMap |
Undefined | QVariant() |
Voir également fromVariant().
QJsonValue::Type QJsonValue::type() const
Renvoie le type de la valeur.
Voir aussi QJsonValue::Type.
[noexcept] QJsonValue &QJsonValue::operator=(QJsonValue &&other)
Move-assigne other à cette valeur.
[noexcept] QJsonValue &QJsonValue::operator=(const QJsonValue &other)
Attribue à cet objet la valeur stockée dans other.
const QJsonValue QJsonValue::operator[](const QString &key) const
Renvoie un QJsonValue représentant la valeur de la clé key.
Cela équivaut à appeler toObject().value(key).
L'adresse QJsonValue renvoyée est QJsonValue::Undefined si la clé n'existe pas ou si isObject() est faux.
Voir aussi QJsonValue, QJsonValue::isUndefined(), et QJsonObject.
const QJsonValue QJsonValue::operator[](qsizetype i) const
Renvoie un QJsonValue représentant la valeur de l'index i.
Cela équivaut à appeler toArray().at(i).
L'adresse QJsonValue renvoyée est QJsonValue::Undefined, si i est hors limites ou si isArray() est faux.
Voir également QJsonValue, QJsonValue::isUndefined() et QJsonArray.
const QJsonValue QJsonValue::operator[](QLatin1StringView key) const
Il s'agit d'une fonction surchargée.
const QJsonValue QJsonValue::operator[](QStringView key) const
Il s'agit d'une fonction surchargée.
Non-membres apparentés
[noexcept] bool operator!=(const QJsonValue &lhs, const QJsonValue &rhs)
Renvoie true si la valeur lhs n'est pas égale à la valeur rhs, false dans le cas contraire.
[noexcept] bool operator==(const QJsonValue &lhs, const QJsonValue &rhs)
Renvoie true si la valeur lhs est égale à la valeur rhs, false sinon.
© 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.