QBinaryJson Namespace

Enthält Funktionen zur Konvertierung von QJsonDocument in und aus dem JSON-Binärformat. Mehr...

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

Typen

enum DataValidation { Validate, BypassValidation }

Funktionen

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)

Detaillierte Beschreibung

Dieser Namespace stellt Utility-Funktionen zur Verfügung, um die Kompatibilität mit älterem Code zu wahren, der das JSON-Binärformat zur Serialisierung von JSON verwendet. Qt JSON-Typen können in Qt CBOR-Typen konvertiert werden, die wiederum in das CBOR-Binärformat serialisiert werden können und umgekehrt.

Typ-Dokumentation

enum QBinaryJson::DataValidation

Diese Aufzählung wird verwendet, um QJsonDocument mitzuteilen, ob die Binärdaten bei der Konvertierung in QJsonDocument mit fromBinaryData() oder fromRawData() validiert werden sollen.

KonstanteWertBeschreibung
QBinaryJson::Validate0Validiert die Daten vor ihrer Verwendung. Dies ist die Standardeinstellung.
QBinaryJson::BypassValidation1Umgeht die Datenüberprüfung. Nur verwenden, wenn Sie die Daten von einer vertrauenswürdigen Stelle erhalten haben und wissen, dass sie gültig sind, da die Verwendung ungültiger Daten die Anwendung zum Absturz bringen kann.

Funktion Dokumentation

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

Erzeugt eine QJsonDocument aus data.

validation entscheidet, ob die Daten vor ihrer Verwendung auf ihre Gültigkeit geprüft werden. Standardmäßig werden die Daten validiert. Wenn die data nicht gültig ist, gibt die Methode ein Null-Dokument zurück.

Hinweis: Die binäre JSON-Kodierung wird nur aus Gründen der Abwärtskompatibilität beibehalten. Sie ist undokumentiert und beschränkt die maximale Größe von JSON-Dokumenten, die kodiert werden können. Qt JSON-Typen können in Qt CBOR-Typen konvertiert werden, die wiederum in das CBOR-Binärformat serialisiert werden können und umgekehrt. Das CBOR-Format ist eine wohldefinierte und weniger restriktive Binärdarstellung für eine Obermenge von JSON.

Siehe auch toBinaryData(), fromRawData(), DataValidation, und QCborValue.

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

Erzeugt ein QJsonDocument, das die ersten size Bytes von data verwendet. Es wird davon ausgegangen, dass data ein binär kodiertes JSON-Dokument enthält. Das erstellte Dokument übernimmt nicht das Eigentum an data. Die Daten werden in eine andere Datenstruktur kopiert, und die ursprünglichen Daten können anschließend gelöscht oder geändert werden.

data muss an einer 4-Byte-Grenze ausgerichtet sein.

validation entscheidet, ob die Daten vor ihrer Verwendung auf ihre Gültigkeit geprüft werden. Standardmäßig werden die Daten validiert. Wenn die data nicht gültig ist, gibt die Methode ein Null-Dokument zurück.

Gibt ein QJsonDocument zurück, das die Daten darstellt.

Hinweis: Die binäre JSON-Kodierung wird nur aus Gründen der Abwärtskompatibilität beibehalten. Sie ist undokumentiert und beschränkt die maximale Größe von JSON-Dokumenten, die kodiert werden können. Qt JSON-Typen können in Qt CBOR-Typen konvertiert werden, die wiederum in das CBOR-Binärformat serialisiert werden können und umgekehrt. Das CBOR-Format ist eine wohldefinierte und weniger restriktive binäre Darstellung für eine Obermenge von JSON.

Hinweis: Vor Qt 5.15 musste der Aufrufer garantieren, dass data nicht gelöscht oder verändert wird, solange QJsonDocument, QJsonObject oder QJsonArray noch auf die Daten verweisen. Ab Qt 5.15 ist dies nicht mehr notwendig.

Siehe auch toRawData(), fromBinaryData(), DataValidation, und QCborValue.

QByteArray QBinaryJson::toBinaryData(const QJsonDocument &document)

Gibt eine binäre Darstellung von document zurück.

Die Binärdarstellung ist auch das native Format, das intern in Qt verwendet wird, und ist sehr effizient und schnell in und aus zu konvertieren.

Das Binärformat kann auf der Festplatte gespeichert werden und mit anderen Anwendungen oder Computern ausgetauscht werden. fromBinaryData() kann verwendet werden, um es wieder in ein JSON-Dokument zu konvertieren.

Hinweis: Die binäre JSON-Kodierung wird nur aus Gründen der Abwärtskompatibilität beibehalten. Sie ist undokumentiert und beschränkt die maximale Größe von JSON-Dokumenten, die kodiert werden können. Qt JSON-Typen können in Qt CBOR-Typen konvertiert werden, die wiederum in das CBOR-Binärformat serialisiert werden können und umgekehrt. Das CBOR-Format ist eine wohldefinierte und weniger restriktive Binärdarstellung für eine Obermenge von JSON.

Siehe auch fromBinaryData() und QCborValue.

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

Liefert die rohe Binärdarstellung von document. size enthält die Größe der zurückgegebenen Daten.

Diese Methode ist nützlich, um z. B. das JSON-Dokument in seiner binären Form in eine Datei zu streamen.

Hinweis: Die binäre JSON-Kodierung wird nur aus Gründen der Abwärtskompatibilität beibehalten. Sie ist undokumentiert und beschränkt die maximale Größe von JSON-Dokumenten, die kodiert werden können. Qt JSON-Typen können in Qt CBOR-Typen konvertiert werden, die wiederum in das CBOR-Binärformat serialisiert werden können und umgekehrt. Das CBOR-Format ist eine wohldefinierte und weniger restriktive Binärdarstellung für eine Obermenge von JSON.

Siehe auch fromRawData(), fromBinaryData(), toBinaryData(), und QCborValue.

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