En esta página

QBinaryJson Namespace

Contiene funciones para convertir QJsonDocument a y desde el formato binario JSON. Más...

Cabecera: #include <QBinaryJson>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat

Tipos

enum DataValidation { Validate, BypassValidation }

Funciones

QJsonDocument fromBinaryData(const QByteArray &data, QBinaryJson::DataValidation validation = Validate)
QJsonDocument fromRawData(const char *data, int size, QBinaryJson::DataValidation validation = Validate)
QByteArray toBinaryData(const QJsonDocument &document)
const char *toRawData(const QJsonDocument &document, int *size)

Descripción Detallada

Este namespace proporciona funciones de utilidad para mantener la compatibilidad con código antiguo, que utiliza el formato binario JSON para serializar JSON. Los tipos JSON de Qt pueden convertirse a tipos CBOR de Qt, que a su vez pueden serializarse al formato binario CBOR y viceversa.

Documentación de tipos

enum QBinaryJson::DataValidation

Este enum se utiliza para indicar a QJsonDocument si debe validar los datos binarios al convertirlos a QJsonDocument utilizando fromBinaryData() o fromRawData().

ConstanteValorDescripción
QBinaryJson::Validate0Valida los datos antes de utilizarlos. Este es el valor por defecto.
QBinaryJson::BypassValidation1Evita la validación de los datos. Utilícelo sólo si ha recibido los datos de un lugar de confianza y sabe que son válidos, ya que el uso de datos no válidos puede bloquear la aplicación.

Documentación de la función

QJsonDocument QBinaryJson::fromBinaryData(const QByteArray &data, QBinaryJson::DataValidation validation = Validate)

Crea un QJsonDocument a partir de data.

validation decide si se comprueba la validez de los datos antes de utilizarlos. Por defecto, los datos se validan. Si data no es válido, el método devuelve un documento nulo.

Nota: La codificación binaria JSON sólo se mantiene por compatibilidad con versiones anteriores. No está documentada y es restrictiva en cuanto al tamaño máximo de los documentos JSON que se pueden codificar. Los tipos JSON de Qt pueden convertirse a tipos CBOR de Qt, que a su vez pueden serializarse en el formato binario CBOR y viceversa. El formato CBOR es una representación binaria bien definida y menos restrictiva para un superconjunto de JSON.

Véase también toBinaryData(), fromRawData(), DataValidation, y QCborValue.

QJsonDocument QBinaryJson::fromRawData(const char *data, int size, QBinaryJson::DataValidation validation = Validate)

Crea un QJsonDocument que utiliza los primeros size bytes de data. Asume que data contiene un documento JSON codificado en binario. El documento creado no se apropia de data. Los datos se copian en una estructura de datos diferente, y los datos originales pueden borrarse o modificarse posteriormente.

data tiene que estar alineado a un límite de 4 bytes.

validation decide si se comprueba la validez de los datos antes de utilizarlos. Por defecto, los datos se validan. Si data no es válido, el método devuelve un documento nulo.

Devuelve un QJsonDocument que representa los datos.

Nota: La codificación binaria JSON sólo se mantiene por compatibilidad con versiones anteriores. No está documentada y es restrictiva en cuanto al tamaño máximo de los documentos JSON que se pueden codificar. Los tipos JSON de Qt pueden convertirse en tipos CBOR de Qt, que a su vez pueden serializarse en el formato binario CBOR y viceversa. El formato CBOR es una representación binaria bien definida y menos restrictiva para un superconjunto de JSON.

Nota: Antes de Qt 5.15, el invocador tenía que garantizar que data no se borraría ni modificaría mientras cualquier QJsonDocument, QJsonObject o QJsonArray siguiera haciendo referencia a los datos. A partir de Qt 5.15, esto ya no es necesario.

Ver también toRawData(), fromBinaryData(), DataValidation, y QCborValue.

QByteArray QBinaryJson::toBinaryData(const QJsonDocument &document)

Devuelve una representación binaria de document.

La representación binaria es también el formato nativo utilizado internamente en Qt, y es muy eficiente y rápido de convertir a y desde.

El formato binario puede almacenarse en disco e intercambiarse con otras aplicaciones u ordenadores. fromBinaryData() puede utilizarse para convertirlo de nuevo en un documento JSON.

Nota: La codificación binaria JSON sólo se mantiene por compatibilidad con versiones anteriores. No está documentada y es restrictiva en cuanto al tamaño máximo de los documentos JSON que se pueden codificar. Los tipos JSON de Qt pueden convertirse a tipos CBOR de Qt, que a su vez pueden serializarse en el formato binario CBOR y viceversa. El formato CBOR es una representación binaria bien definida y menos restrictiva para un superconjunto de JSON.

Véase también fromBinaryData() y QCborValue.

const char *QBinaryJson::toRawData(const QJsonDocument &document, int *size)

Devuelve la representación binaria en bruto de document. size contendrá el tamaño de los datos devueltos.

Este método es útil para, por ejemplo, transmitir el documento JSON en su forma binaria a un archivo.

Nota: La codificación binaria de JSON sólo se mantiene por compatibilidad con versiones anteriores. No está documentada y es restrictiva en cuanto al tamaño máximo de los documentos JSON que se pueden codificar. Los tipos JSON de Qt pueden convertirse en tipos CBOR de Qt, que a su vez pueden serializarse en el formato binario CBOR y viceversa. El formato CBOR es una representación binaria bien definida y menos restrictiva para un superconjunto de JSON.

Véase también fromRawData(), fromBinaryData(), toBinaryData(), y QCborValue.

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