Sur cette page

QJsonDocument Class

La classe QJsonDocument permet de lire et d'écrire des documents JSON. Plus d'informations...

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

Cette classe est comparable à l'égalité.

Note : Toutes les fonctions de cette classe sont réentrantes.

Types publics

enum JsonFormat { Indented, Compact }

Fonctions publiques

QJsonDocument()
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 englobe un document JSON complet et qui peut lire ce document à partir d'une représentation textuelle encodée UTF-8 et l'écrire dans cette représentation.

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

La validité du document analysé peut être demandée avec !isNull()

Un document peut être interrogé pour savoir s'il contient un tableau ou un objet en utilisant 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 aussi Support JSON dans Qt et Sauvegarde et chargement d'un jeu.

Documentation sur les types de membres

enum QJsonDocument::JsonFormat

Cette valeur définit le format du tableau d'octets JSON produit lors de la conversion en QJsonDocument à l'aide de toJson().

ConstanteValeurDescription
QJsonDocument::Indented0Définit une sortie lisible par l'homme 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}

Fonction membre Documentation

QJsonDocument::QJsonDocument()

Construit un document vide et invalide.

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

Construit un QJsonDocument à partir de array.

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

Crée un QJsonDocument à partir de object.

QJsonDocument::QJsonDocument(const QJsonDocument &other)

Crée une copie du document other.

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

Move-construit un QJsonDocument à partir de other.

[noexcept] QJsonDocument::~QJsonDocument()

Supprime le document.

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

QJsonArray QJsonDocument::array() const

Retourne les QJsonArray contenus dans le document.

Retourne un tableau vide si le document contient un objet.

Voir aussi isArray(), object(), et setArray().

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

Analyse json comme un document JSON encodé en UTF-8 et crée un QJsonDocument à partir de celui-ci.

Retourne un QJsonDocument valide (non nul) si l'analyse réussit. En cas d'échec, le document retourné sera nul, et la variable optionnelle error contiendra des détails supplémentaires sur l'erreur.

Voir aussi toJson(), QJsonParseError, et isNull().

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

Crée un QJsonDocument à partir du QVariant variant .

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

Voir aussi toVariant().

bool QJsonDocument::isArray() const

Renvoie true si le document contient un tableau.

Voir aussi array() et isObject().

bool QJsonDocument::isEmpty() const

Renvoie true si le document ne contient pas de données.

bool QJsonDocument::isNull() const

renvoie true si ce document est nul.

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

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

bool QJsonDocument::isObject() const

Renvoie true si le document contient un objet.

Voir aussi object() et isArray().

QJsonObject QJsonDocument::object() const

Retourne les QJsonObject contenus dans le document.

Retourne un objet vide si le document contient un tableau.

Voir aussi isObject(), array(), et setObject().

void QJsonDocument::setArray(const QJsonArray &array)

Définit array comme l'objet principal de ce document.

Voir également setObject() et array().

void QJsonDocument::setObject(const QJsonObject &object)

Définit object comme l'objet principal de ce document.

Voir également setArray() et object().

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

Remplace ce document par other. Cette opération est très rapide et n'échoue jamais.

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

Convertit le document QJsonDocument en un document JSON encodé en UTF-8 dans le format fourni format.

Voir aussi fromJson() et JsonFormat.

QVariant QJsonDocument::toVariant() const

Renvoie un QVariant représentant le document Json.

La variante renvoyée sera un QVariantList si le document est un QJsonArray et un QVariantMap si le document est un QJsonObject.

Voir aussi fromVariant() et QJsonValue::toVariant().

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

Move-assigne 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 QJsonValue représentant la valeur de la clé key.

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

Renvoie un QJsonValue représentant la valeur de l'index i.

Cela équivaut à appeler array().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 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.

Non-membres apparentés

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

Renvoie true si le document lhs n'est pas égal au document rhs, false sinon.

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

Renvoie true si le document lhs est égal au document 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.