En esta página

QJsonDocument Class

La clase QJsonDocument proporciona una forma de leer y escribir documentos JSON. Más...

Cabecera: #include <QJsonDocument>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Esta clase es igual-comparable.

Nota: Todas las funciones de esta clase son reentrantes.

Tipos Públicos

enum JsonFormat { Indented, Compact }

Funciones Públicas

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

Miembros Públicos Estáticos

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)

Descripción Detallada

QJsonDocument es una clase que envuelve un documento JSON completo y puede leer este documento desde, y escribirlo en, una representación codificada en UTF-8 basada en texto.

Un documento JSON puede convertirse de su representación basada en texto a un QJsonDocument utilizando QJsonDocument::fromJson(). toJson() lo convierte de nuevo a texto. El parser es muy rápido y eficiente y convierte el JSON a la representación binaria utilizada por Qt.

La validez del documento analizado puede consultarse con !isNull()

Se puede consultar si un documento contiene un array o un objeto utilizando isArray() y isObject(). El array u objeto contenido en el documento puede ser recuperado usando array() o object() y luego leído o manipulado.

Ver también Soporte JSON en Qt y Guardar y Cargar un Juego.

Documentación de tipos de miembros

enum QJsonDocument::JsonFormat

Este valor define el formato de la matriz de bytes JSON producida al convertir a QJsonDocument utilizando toJson().

ConstanteValorDescripción
QJsonDocument::Indented0Define la salida legible para humanos de la siguiente manera:
    {
        "Array": [
            true,
            999,
            "string"
        ],
        "Key": "Value",
        "null": null
    }
QJsonDocument::Compact1Define una salida compacta como sigue:
    {"Array":[true,999,"string"],"Key":"Value","null":null}

Documentación de las funciones miembro

QJsonDocument::QJsonDocument()

Construye un documento vacío e inválido.

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

Construye un QJsonDocument a partir de array.

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

Crea un QJsonDocument a partir de object.

QJsonDocument::QJsonDocument(const QJsonDocument &other)

Crea una copia del documento other.

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

Move-construye un QJsonDocument a partir de other.

[noexcept] QJsonDocument::~QJsonDocument()

Elimina el documento.

El conjunto de datos binarios con fromRawData no se libera.

QJsonArray QJsonDocument::array() const

Devuelve los QJsonArray contenidos en el documento.

Devuelve un array vacío si el documento contiene un objeto.

Véase también isArray(), object() y setArray().

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

Analiza json como un documento JSON codificado en UTF-8 y crea un QJsonDocument a partir de él.

Devuelve un QJsonDocument válido (no nulo) si el análisis se realiza correctamente. Si falla, el documento devuelto será nulo, y la variable opcional error contendrá más detalles sobre el error.

Véase también toJson(), QJsonParseError, y isNull().

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

Crea un QJsonDocument a partir del QVariant variant .

Si variant contiene cualquier otro tipo que no sea QVariantMap, QVariantHash, QVariantList o QStringList, el documento devuelto no es válido.

Véase también toVariant().

bool QJsonDocument::isArray() const

Devuelve true si el documento contiene un array.

Véase también array() y isObject().

bool QJsonDocument::isEmpty() const

Devuelve true si el documento no contiene ningún dato.

bool QJsonDocument::isNull() const

devuelve true si el documento es nulo.

Los documentos nulos son documentos creados a través del constructor por defecto.

Los documentos creados a partir de texto codificado en UTF-8 o en formato binario se validan durante el análisis sintáctico. Si la validación falla, el documento devuelto también será nulo.

bool QJsonDocument::isObject() const

Devuelve true si el documento contiene un objeto.

Véase también object() y isArray().

QJsonObject QJsonDocument::object() const

Devuelve los QJsonObject contenidos en el documento.

Devuelve un objeto vacío si el documento contiene un array.

Véase también isObject(), array() y setObject().

void QJsonDocument::setArray(const QJsonArray &array)

Establece array como objeto principal de este documento.

Véase también setObject() y array().

void QJsonDocument::setObject(const QJsonObject &object)

Establece object como objeto principal de este documento.

Véase también setArray() y object().

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

Cambia este documento por other. Esta operación es muy rápida y nunca falla.

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

Convierte QJsonDocument en un documento JSON codificado en UTF-8 en el formato proporcionado format.

Véase también fromJson() y JsonFormat.

QVariant QJsonDocument::toVariant() const

Devuelve un QVariant que representa el documento Json.

La variante devuelta será un QVariantList si el documento es un QJsonArray y un QVariantMap si el documento es un QJsonObject.

Véase también fromVariant() y QJsonValue::toVariant().

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

Mover-asigna other a este documento.

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

Asigna el documento other a este QJsonDocument. Devuelve una referencia a este objeto.

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

Devuelve un QJsonValue que representa el valor de la clave key.

Equivale a llamar a object().value(key).

El QJsonValue devuelto es QJsonValue::Undefined si la clave no existe, o si isObject() es falso.

Véase también QJsonValue, QJsonValue::isUndefined(), y QJsonObject.

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

Devuelve un QJsonValue que representa el valor del índice i.

Equivale a llamar a array().at(i).

El QJsonValue devuelto es QJsonValue::Undefined, si i está fuera de los límites, o si isArray() es falso.

Véase también QJsonValue, QJsonValue::isUndefined(), y QJsonArray.

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

Se trata de una función sobrecargada.

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

Se trata de una función sobrecargada.

No miembros relacionados

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

Devuelve true si el documento lhs no es igual al documento rhs, false en caso contrario.

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

Devuelve true si el documento lhs es igual al documento rhs, false en caso contrario.

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