Sur cette page

QJsonDocument Class

La classe QJsonDocument permet de lire et d'écrire des documents JSON. En savoir plus...

En-tête : #include <QJsonDocument>
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 QJsonDocument

CatégorieTypes comparables
égalitéQJsonDocument

Types publics

enum JsonFormat { Indented, Compact }

Fonctions publiques

QJsonDocument()
(since 6.12) QJsonDocument(QJsonArray &&array)
(since 6.12) QJsonDocument(QJsonObject &&object)
QJsonDocument(const QJsonArray &array)
QJsonDocument(const QJsonObject &object)
QJsonDocument(const QJsonDocument &other)
QJsonDocument(QJsonDocument &&other)
~QJsonDocument()
QJsonArray array() const
bool isArray() const
bool isEmpty() const
bool isNull() const
bool isObject() const
QJsonObject object() const
void setArray(const QJsonArray &array)
void setObject(const QJsonObject &object)
void swap(QJsonDocument &other)
QByteArray toJson(QJsonDocument::JsonFormat format = JsonFormat::Indented) const
QVariant toVariant() const
QJsonDocument &operator=(QJsonDocument &&other)
QJsonDocument &operator=(const QJsonDocument &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

QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = nullptr)
QJsonDocument fromVariant(const QVariant &variant)
bool operator!=(const QJsonDocument &lhs, const QJsonDocument &rhs)
bool operator==(const QJsonDocument &lhs, const QJsonDocument &rhs)

Description détaillée

QJsonDocument est une classe qui encapsule un document JSON complet et permet de lire ce document à partir d'une représentation textuelle encodée en UTF-8, ainsi que de l'écrire dans ce format.

Un document JSON peut être converti de sa représentation textuelle en un QJsonDocument à l'aide de la fonction QJsonDocument::fromJson(). La fonction toJson() le reconvertit en texte. L'analyseur est très rapide et efficace ; il convertit le JSON en représentation binaire utilisée par Qt.

La validité du document analysé peut être vérifiée à l'aide de !isNull()

Il est possible de vérifier si un document contient un tableau ou un objet à l'aide de ` isArray()` et ` isObject()`. Le tableau ou l'objet contenu dans le document peut être récupéré à l'aide de ` array()` ou ` object()`, puis lu ou manipulé.

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

Documentation sur les types de membres

enum QJsonDocument::JsonFormat

Cette valeur définit le format du tableau d'octets JSON généré lors de la conversion en une chaîne de caractères de type « QJsonDocument » à l'aide de la fonction toJson().

ConstanteValeurDescription
QJsonDocument::Indented0Définit une sortie lisible par l’utilisateur comme suit :
    {
        "Array": [
            true,
            999,
            "string"
        ],
        "Key": "Value",
        "null": null
    }
QJsonDocument::Compact1Définit une sortie compacte comme suit :
    {"Array":[true,999,"string"],"Key":"Value","null":null}

Documentation des fonctions membres

QJsonDocument::QJsonDocument()

Crée un document vide et non valide.

[explicit, since 6.12] QJsonDocument::QJsonDocument(QJsonArray &&array)

Crée un objet `QJsonDocument` à partir d'array.

Cette fonction a été introduite dans Qt 6.12.

[explicit, since 6.12] QJsonDocument::QJsonDocument(QJsonObject &&object)

Crée un objet `QJsonDocument` à partir d'un objet ` object`.

Cette fonction a été introduite dans Qt 6.12.

[explicit] QJsonDocument::QJsonDocument(const QJsonArray &array)

Crée un objet `QJsonDocument` à partir de ` array`.

[explicit] QJsonDocument::QJsonDocument(const QJsonObject &object)

Crée un objet `QJsonDocument` à partir de object.

QJsonDocument::QJsonDocument(const QJsonDocument &other)

Crée une copie du document « other ».

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

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

[noexcept] QJsonDocument::~QJsonDocument()

Supprime le document.

L'ensemble de données binaires créé avec fromRawData n'est pas libéré.

QJsonArray QJsonDocument::array() const

Renvoie l'QJsonArray e contenue dans le document.

Renvoie un tableau vide si le document contient un objet.

Voir également isArray(), object() et setArray().

[static] QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error = nullptr)

Analyse json en tant que document JSON encodé en UTF-8, puis crée un objet ` QJsonDocument ` à partir de celui-ci.

Renvoie un objet ` QJsonDocument ` valide (non nul) si l'analyse est réussie. En cas d'échec, le document renvoyé sera nul et la variable facultative ` error ` contiendra des détails supplémentaires sur l'erreur.

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

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

Crée un fichier « QJsonDocument » à partir de la page QVariant variant .

Si l'variant contient un type autre qu'un QVariantMap, QVariantHash, QVariantList ou QStringList, le document renvoyé n'est pas valide.

Voir également toVariant().

bool QJsonDocument::isArray() const

Renvoie « true » si le document contient un tableau.

Voir également array() et isObject().

bool QJsonDocument::isEmpty() const

Renvoie « true » si le document ne contient aucune donnée.

bool QJsonDocument::isNull() const

Renvoie « true » si ce document est nul.

Les documents nuls sont des documents créés via le constructeur par défaut.

Les documents créés à partir d'un texte encodé en UTF-8 ou au format binaire sont validés lors de l'analyse. Si la validation échoue, le document renvoyé sera également nul.

bool QJsonDocument::isObject() const

Renvoie ` true ` si le document contient un objet.

Voir également object() et isArray().

QJsonObject QJsonDocument::object() const

Renvoie l'QJsonObject e contenu dans le document.

Renvoie un objet vide si le document contient un tableau.

Voir également isObject(), array() et setObject().

void QJsonDocument::setArray(const QJsonArray &array)

Définit array comme objet principal de ce document.

Voir également setObject() et array().

void QJsonDocument::setObject(const QJsonObject &object)

Définit object comme objet principal de ce document.

Voir également setArray() et object().

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

Remplace ce document par celui disponible à l'adresse other. Cette opération est très rapide et ne pose jamais de problème.

QByteArray QJsonDocument::toJson(QJsonDocument::JsonFormat format = JsonFormat::Indented) const

Convertit le fichier « QJsonDocument » en un document JSON encodé en UTF-8, puis l'enregistre dans le répertoire « format » fourni.

Voir également fromJson() et JsonFormat.

QVariant QJsonDocument::toVariant() const

Renvoie un objet ` QVariant ` représentant le document JSON.

La variante renvoyée sera de type « QVariantList » si le document est de type « QJsonArray » et de type « QVariantMap » si le document est de type « QJsonObject ».

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

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

Cette opération attribue le numéro d'other à ce document.

QJsonDocument &QJsonDocument::operator=(const QJsonDocument &other)

Attribue le document « other » à cet objet QJsonDocument. Renvoie une référence à cet objet.

const QJsonValue QJsonDocument::operator[](const QString &key) const

Renvoie un objet de type « QJsonValue » représentant la valeur associée à la clé « key ».

Cela revient à appeler ` object()`.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 QJsonDocument::operator[](qsizetype i) const

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

Cela revient à appeler ` array()`.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 QJsonDocument::operator[](QLatin1StringView key) const

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

const QJsonValue QJsonDocument::operator[](QStringView key) const

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

Éléments non membres associés

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

Renvoie « true » si le document lhs n'est pas identique au document rhs, et « false » dans le cas contraire.

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

Renvoie « true » si le document lhs est identique au document 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.