Sur cette page

QJsonValue Class

La classe QJsonValue encapsule une valeur au format JSON. En savoir plus...

En-tête : #include <QJsonValue>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Remarque : toutes les fonctions de cette classe sont réentrantes.

Comparaisons de QJsonValue

CatégorieTypes comparables
égalitéQJsonValue
égalitéQJsonValueConstRef et QJsonValueRef.

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)
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 suivants :

JSON est un format permettant de stocker des données structurées. Il comporte six types de données de base :

Une valeur peut représenter n'importe lequel des types de données ci-dessus. De plus, QJsonValue dispose d'un indicateur spécial pour représenter les valeurs non définies. Celui-ci peut être interrogé à l'aide de la méthode isUndefined().

Le type de la valeur peut être interrogé à l’aide de ` type()` ou d’accesseurs tels que ` isBool()`, ` isString()`, etc. De même, la valeur peut être convertie vers le type qui y est stocké à l’aide de ` toBool()`, ` toString()`, etc.

Les valeurs sont strictement typées en interne et, contrairement à ` QVariant `, aucune conversion implicite de type ne sera tentée. 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 à un QJsonValue. Si vous lui attribuez une valeur, l’affectation s’appliquera à l’élément de QJsonArray ou QJsonObject à partir duquel vous avez obtenu la référence.

Les méthodes suivantes renvoient des objets de type ` QJsonValueRef` :

Voir également la prise en charge de JSON dans Qt et la section « Enregistrement et chargement d’une partie ».

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.

ConstanteValeurDescription
QJsonValue::Null0x0Une valeur nulle
QJsonValue::Bool0x1Une valeur booléenne. Utilisez toBool() pour la convertir en booléen.
QJsonValue::Double0x2Une valeur numérique. Utilisez toDouble() pour la convertir en double, ou toInteger() pour la convertir en qint64.
QJsonValue::String0x3Une chaîne de caractères. Utilisez toString() pour la convertir en QString.
QJsonValue::Array0x4Un tableau. Utilisez toArray() pour le convertir en QJsonArray.
QJsonValue::Object0x5Un objet. Utilisez ` toObject()` pour le convertir en ` QJsonObject`.
QJsonValue::Undefined0x80La valeur est indéfinie. Cette valeur est généralement renvoyée en cas d’erreur, notamment lorsque l’on tente de lire une valeur hors limites dans un tableau ou une clé inexistante dans un objet.

Documentation des fonctions membres

QJsonValue::QJsonValue(QJsonValue::Type type = Null)

Crée un objet `QJsonValue` de type ` type`.

Par défaut, une valeur Null est créée.

QJsonValue::QJsonValue(QLatin1StringView s)

Crée une valeur de type String, contenant la chaîne Latin-1 telle qu'elle est interprétée par s.

QJsonValue::QJsonValue(bool b)

Crée une valeur de type Bool, dont la valeur est « b ».

QJsonValue::QJsonValue(const QJsonArray &a)

Crée une valeur de type Array, dont la valeur est a.

QJsonValue::QJsonValue(const QJsonObject &o)

Crée une valeur de type Object, dont la valeur est « o ».

QJsonValue::QJsonValue(const QString &s)

Crée une valeur de type String, dont la valeur est « s ».

QJsonValue::QJsonValue(const char *s)

Crée une valeur de type String dont la valeur est « s », en supposant que l'entrée soit encodée en UTF-8.

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, dont la valeur est 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, dont la valeur est v.

Il s'agit d'une fonction surchargée.

QJsonValue::QJsonValue(qint64 v)

Crée une valeur de type Double, dont la valeur est v.

Cette valeur est stockée en interne sous la forme d'un entier de 64 bits ; elle conserve donc toute sa précision tant qu'elle est récupérée à l'aide de ` toInteger()`. En revanche, la récupération de sa valeur à l'aide de ` toDouble()` entraîne une perte de précision, sauf si la valeur se situe entre ±2^53.

Il s’agit d’une fonction surchargée.

Voir également toInteger() et toDouble().

[noexcept] QJsonValue::QJsonValue(const QJsonValue &other)

Crée une copie de other.

[noexcept] QJsonValue::QJsonValue(QJsonValue &&other)

Crée un objet `QJsonValue` à partir de ` other`.

[noexcept] QJsonValue::~QJsonValue()

Cela anéantit toute 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, puis crée un objet QJsonValue à partir de celle-ci.

Renvoie un objet ` QJsonValue ` valide si l'analyse est réussie. En cas d'échec, la valeur renvoyée sera ` undefined`, et la variable facultative ` error ` contiendra des détails supplémentaires sur l'erreur.

Cette fonction a été introduite dans Qt 6.9.

Voir également QJsonParseError, isUndefined() et toJson().

[static] QJsonValue QJsonValue::fromVariant(const QVariant &variant)

Convertit une valeur de type ` variant ` en une valeur de type ` QJsonValue ` et la renvoie.

La conversion transformera les types d'QVariant s comme suit :

Type sourceType de destination
QJsonValue::Null
QJsonValue::Bool
QJsonValue::Double
QJsonValue::String
QJsonValue::Array
QJsonValue::Object
QJsonValue::String. La conversion utilisera la fonction ` QUrl::toString()` avec l’indicateur ` QUrl::FullyEncoded`, afin d’assurer une compatibilité maximale lors de l’analyse de l’URL
QJsonValue::String. Depuis Qt 5.11, la chaîne résultante n’inclura pas d’accolades
Quel que soit le type renvoyé par ` QCborValue::toJsonValue()`.
QJsonValue::Array. Voir la fonction QCborValue::toJsonValue() pour connaître les restrictions de conversion.
QJsonValue::Map. Voir QCborValue::toJsonValue() pour les restrictions de conversion et la « conversion en chaîne » des clés de la carte.
Perte d’informations et autres types

QVariant peuvent contenir plus d’informations que ce qui est représentable en JSON. Si l’ QVariant n’est pas l’un des types ci-dessus, la conversion n’est pas garantie et est susceptible d’être modifiée dans les futures versions de Qt, comme cela a été le cas pour le type UUID. Le code doit s’efforcer de ne pas utiliser d’autres types que ceux énumérés ci-dessus.

Si ` QVariant::isNull()` renvoie `true`, une valeur ` QJsonValue ` nulle est renvoyée ou insérée 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 à virgule flottante qui est soit infinie, soit NaN, sera convertie en une valeur JSON nulle. Depuis Qt 6.0, QJsonValue peut stocker toute la précision de n’importe quel entier signé de 64 bits sans perte, mais dans les versions précédentes, les valeurs situées en dehors de la plage ±2^53 peuvent subir une perte de précision. Les valeurs non signées de 64 bits supérieures ou égales à 2^63 subiront soit une perte de précision, soit un alias vers des valeurs négatives ; il convient donc d’éviter d’utiliser ` QMetaType::ULongLong `.

Pour les autres types non répertorié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 la fonction ` QVariant::toString()` entraîne également une perte de précision pour la plupart des types. Par exemple, si l’ QVariant e transmise représente des données brutes sous forme de tableau d’octets, il est recommandé de l’encoder au préalable en Base64 (ou dans un autre format sans perte), sinon une conversion avec perte utilisant ` QString::fromUtf8()` sera appliquée.

Veuillez noter que les conversions effectuées via QVariant::toString() sont susceptibles d’être modifiées à tout moment. Les fonctions QVariant et QJsonValue pourraient être étendues à l’avenir pour prendre en charge davantage de types, ce qui entraînerait une modification du fonctionnement de cette fonction lors des conversions.

Voir également toVariant() et QCborValue::fromVariant().

bool QJsonValue::isArray() const

Renvoie « true » si la valeur contient un tableau.

Voir aussi toArray().

bool QJsonValue::isBool() const

Renvoie « true » si la valeur contient une valeur booléenne.

Voir aussi toBool().

bool QJsonValue::isDouble() const

Renvoie « true » si la valeur contient un nombre à virgule flottante de type 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é inexistante dans un « QJsonObject ».

[noexcept] void QJsonValue::swap(QJsonValue &other)

Permute cette valeur avec celle de ` other`. Cette opération est très rapide et ne rencontre jamais d'échec.

QJsonArray QJsonValue::toArray(const QJsonArray &defaultValue) const

Convertit la valeur en tableau et la renvoie.

Si type() n'est pas un tableau, l'defaultValue sera renvoyée.

QJsonArray QJsonValue::toArray() const

Convertit la valeur en tableau et la renvoie.

Si type() n'est pas un tableau, une exception QJsonArray() sera levée.

Il s'agit d'une fonction surchargée.

bool QJsonValue::toBool(bool defaultValue = false) const

Convertit la valeur en booléen et la renvoie.

Si type() n'est pas de type booléen, l'defaultValue sera renvoyée.

double QJsonValue::toDouble(double defaultValue = 0) const

Convertit la valeur en type « double » et la renvoie.

Si type() n'est pas de type Double, l'defaultValue sera renvoyée.

int QJsonValue::toInt(int defaultValue = 0) const

Convertit la valeur en entier (int) et la renvoie.

Si type() n'est pas de type Double ou si la valeur n'est pas un nombre entier, l'defaultValue sera renvoyée.

[since 6.0] qint64 QJsonValue::toInteger(qint64 defaultValue = 0) const

Convertit la valeur en nombre entier et la renvoie.

Si ` type()` n'est pas de type `Double` ou si la valeur n'est pas un nombre entier représentable sous la forme `qint64`, l'defaultValue ` sera renvoyée.

Cette fonction a été introduite dans Qt 6.0.

[since 6.9] QByteArray QJsonValue::toJson(QJsonValue::JsonFormat format = JsonFormat::Indented) const

Convertit l'QJsonValue e en une valeur JSON encodée en UTF-8 dans l'format fourni.

Cette fonction a été introduite dans Qt 6.9.

Voir également fromJson() et JsonFormat.

QJsonObject QJsonValue::toObject(const QJsonObject &defaultValue) const

Convertit la valeur en objet et la renvoie.

Si type() n'est pas de type Object, l'defaultValue sera renvoyée.

QJsonObject QJsonValue::toObject() const

Convertit la valeur en objet et la renvoie.

Si type() n'est pas de type Object, la fonction QJsonObject() sera renvoyée.

Il s'agit d'une fonction surchargée.

QString QJsonValue::toString() const

Convertit la valeur en une chaîne de caractères ( QString ) et la renvoie.

Si type() n'est pas de type String, une valeur nulle QString sera renvoyée.

Voir aussi ` QString::isNull()`.

QString QJsonValue::toString(const QString &defaultValue) const

Convertit la valeur en « QString » et la renvoie.

Si type() n'est pas de type String, l'defaultValue sera renvoyée.

Voir aussi ` toStringView()`.

[since 6.10] QAnyStringView QJsonValue::toStringView(QAnyStringView defaultValue = {}) const

Renvoie la valeur de chaîne stockée dans cet QJsonValue, si celui-ci est de type string. Sinon, elle renvoie defaultValue. Étant donné que QJsonValue stocke les chaînes au format US-ASCII, UTF-8 ou UTF-16, la valeur QAnyStringView renvoyée 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 de cet objet. Si cet objet sort de sa portée, la valeur de retour est valide jusqu’au prochain appel à une fonction membre non-const de l’objet JSON parent ou du tableau.

Cette fonction a été introduite dans Qt 6.10.

Voir également ` toString()`.

QVariant QJsonValue::toVariant() const

Convertit la valeur en un type « QVariant » ().

Les types de la classe ` QJsonValue ` seront convertis comme suit :

ConstanteDescription
NullQMetaType::Nullptr
BoolQMetaType::Bool
DoubleQMetaType::Double ou QMetaType::LongLong
StringQString
ArrayQVariantList
ObjectQVariantMap
UndefinedQVariant()

Voir aussi fromVariant().

QJsonValue::Type QJsonValue::type() const

Renvoie le type de la valeur.

Voir aussi QJsonValue::Type.

[noexcept] QJsonValue &QJsonValue::operator=(QJsonValue &&other)

La commande « move » attribue la valeur « other » à cette variable.

[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 objet ` QJsonValue ` représentant la valeur associée à la clé ` key`.

Cela revient à appeler ` toObject()`.value(key).

L'QJsonValue renvoyée est QJsonValue::Undefined si la clé n'existe pas ou si isObject() est faux.

Voir également QJsonValue, QJsonValue::isUndefined() et QJsonObject.

const QJsonValue QJsonValue::operator[](qsizetype i) const

Renvoie un objet ` QJsonValue ` représentant la valeur associée à l'i.

Cela revient à appeler ` toArray()`.at(i).

L'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.

Éléments non membres associés

[noexcept] bool operator!=(const QJsonValue &lhs, const QJsonValue &rhs)

Renvoie « true » si la valeur « lhs » n'est pas égale à la valeur « rhs », et « 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 », et « false » dans le cas contraire.

© 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.