Auf dieser Seite

QJsonValue Class

Die Klasse „QJsonValue“ kapselt einen Wert im JSON-Format. Mehr dazu...

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

Hinweis: Alle Funktionen dieser Klasse sind reentrant.

QJsonValue-Vergleiche

KategorieVergleichbare Typen
GleichheitQJsonValue
GleichheitQJsonValueConstRef und QJsonValueRef.

Öffentliche Typen

(since 6.9) JsonFormat
enum Type { Null, Bool, Double, String, Array, …, Undefined }

Öffentliche Funktionen

QJsonValue(QJsonValue::Type type = Null)
QJsonValue(QLatin1StringView s)
QJsonValue(bool b)
QJsonValue(const QJsonArray &a)
QJsonValue(const QJsonObject &o)
QJsonValue(const QString &s)
QJsonValue(const char *s)
QJsonValue(double v)
(since 6.3) QJsonValue(QJsonArray &&a)
(since 6.3) QJsonValue(QJsonObject &&o)
QJsonValue(int v)
QJsonValue(qint64 v)
QJsonValue(const QJsonValue &other)
QJsonValue(QJsonValue &&other)
~QJsonValue()
bool isArray() const
bool isBool() const
bool isDouble() const
bool isNull() const
bool isObject() const
bool isString() const
bool isUndefined() const
void swap(QJsonValue &other)
QJsonArray toArray(const QJsonArray &defaultValue) const
QJsonArray toArray() const
bool toBool(bool defaultValue = false) const
double toDouble(double defaultValue = 0) const
int toInt(int defaultValue = 0) const
(since 6.0) qint64 toInteger(qint64 defaultValue = 0) const
(since 6.9) QByteArray toJson(QJsonValue::JsonFormat format = JsonFormat::Indented) const
QJsonObject toObject(const QJsonObject &defaultValue) const
QJsonObject toObject() const
QString toString() const
QString toString(const QString &defaultValue) const
(since 6.10) QAnyStringView toStringView(QAnyStringView defaultValue = {}) const
QVariant toVariant() const
QJsonValue::Type type() const
QJsonValue &operator=(QJsonValue &&other)
QJsonValue &operator=(const QJsonValue &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

Statische öffentliche Mitglieder

(since 6.9) QJsonValue fromJson(QByteArrayView json, QJsonParseError *error = nullptr)
QJsonValue fromVariant(const QVariant &variant)
bool operator!=(const QJsonValue &lhs, const QJsonValue &rhs)
bool operator==(const QJsonValue &lhs, const QJsonValue &rhs)

Ausführliche Beschreibung

Ein Wert in JSON kann einem von 6 Grundtypen angehören:

JSON ist ein Format zur Speicherung strukturierter Daten. Es verfügt über 6 grundlegende Datentypen:

Ein Wert kann einen der oben genannten Datentypen darstellen. Darüber hinaus verfügt QJsonValue über ein spezielles Flag zur Darstellung undefinierter Werte. Dieses kann mit ` isUndefined()` abgefragt werden.

Der Typ des Werts kann mit ` type()` oder mit Zugriffsmethoden wie ` isBool()`, ` isString()` usw. abgefragt werden. Ebenso kann der Wert mithilfe von ` toBool()`, ` toString()` usw. in den darin gespeicherten Typ konvertiert werden.

Werte sind intern streng typisiert und versuchen – im Gegensatz zu ` QVariant ` – keine impliziten Typkonvertierungen. Das bedeutet, dass bei einer Konvertierung in einen Typ, der nicht im Wert gespeichert ist, ein standardmäßig konstruierter Rückgabewert zurückgegeben wird.

QJsonValueRef

QJsonValueRef ist eine Hilfsklasse für „ QJsonArray “ und „ QJsonObject “. Wenn Sie ein Objekt vom Typ „ QJsonValueRef “ erhalten, können Sie es so verwenden, als wäre es eine Referenz auf ein „QJsonValue“. Wenn Sie ihm einen Wert zuweisen, wirkt sich die Zuweisung auf das Element in „ QJsonArray “ oder „ QJsonObject “ aus, von dem Sie die Referenz erhalten haben.

Die folgenden Methoden geben „ QJsonValueRef “ zurück:

Siehe auch JSON-Unterstützung in Qt und Speichern und Laden eines Spiels.

Dokumentation zu Mitgliedstypen

[alias, since 6.9] QJsonValue::JsonFormat

Entspricht ` QJsonDocument::JsonFormat`.

Diese `typedef`-Definition wurde in Qt 6.9 eingeführt.

enum QJsonValue::Type

Diese Enumeration beschreibt den Typ des JSON-Werts.

KonstanteWertBeschreibung
QJsonValue::Null0x0Ein Null-Wert
QJsonValue::Bool0x1Ein boolescher Wert. Verwenden Sie ` toBool()`, um ihn in einen booleschen Wert umzuwandeln.
QJsonValue::Double0x2Ein numerischer Wert. Verwenden Sie ` toDouble()` zur Konvertierung in einen `double`-Wert oder ` toInteger()` zur Konvertierung in einen `qint64`-Wert.
QJsonValue::String0x3Eine Zeichenkette. Verwenden Sie ` toString()` zur Konvertierung in einen ` QString`.
QJsonValue::Array0x4Ein Array. Verwenden Sie ` toArray()` zur Konvertierung in einen ` QJsonArray`.
QJsonValue::Object0x5Ein Objekt. Verwenden Sie ` toObject()` zur Konvertierung in einen ` QJsonObject`.
QJsonValue::Undefined0x80Der Wert ist undefiniert. Dies wird in der Regel als Fehlerzustand zurückgegeben, wenn versucht wird, einen Wert außerhalb des Bereichs eines Arrays oder einen nicht vorhandenen Schlüssel in einem Objekt zu lesen.

Dokumentation zu Mitgliedsfunktionen

QJsonValue::QJsonValue(QJsonValue::Type type = Null)

Erstellt einen QJsonValue vom Typ „ type “.

Standardmäßig wird ein Null-Wert erstellt.

QJsonValue::QJsonValue(QLatin1StringView s)

Erzeugt einen Wert vom Typ „String“ mit der Latin-1-Zeichenkette, wie sie von „ s “ dargestellt wird.

QJsonValue::QJsonValue(bool b)

Erzeugt einen Wert vom Typ „Bool“ mit dem Wert „ b “.

QJsonValue::QJsonValue(const QJsonArray &a)

Erzeugt einen Wert vom Typ Array mit dem Wert „ a “.

QJsonValue::QJsonValue(const QJsonObject &o)

Erzeugt einen Wert vom Typ „Object“ mit dem Wert „ o “.

QJsonValue::QJsonValue(const QString &s)

Erzeugt einen Wert vom Typ „String“ mit dem Wert „ s “.

QJsonValue::QJsonValue(const char *s)

Erzeugt einen Wert vom Typ „String“ mit dem Wert „ s “, wobei von einer UTF-8-Kodierung der Eingabe ausgegangen wird.

Sie können diesen Konstruktor deaktivieren, indem Sie bei der Kompilierung Ihrer Anwendungen „ QT_NO_CAST_FROM_ASCII “ definieren.

QJsonValue::QJsonValue(double v)

Erzeugt einen Wert vom Typ „Double“ mit dem Wert „ v “.

[noexcept, since 6.3] QJsonValue::QJsonValue(QJsonArray &&a)

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.3 eingeführt.

[noexcept, since 6.3] QJsonValue::QJsonValue(QJsonObject &&o)

Dies ist eine überladene Funktion.

Diese Funktion wurde in Qt 6.3 eingeführt.

QJsonValue::QJsonValue(int v)

Erzeugt einen Wert vom Typ „Double“ mit dem Wert „ v “.

Dies ist eine überladene Funktion.

QJsonValue::QJsonValue(qint64 v)

Erzeugt einen Wert vom Typ „Double“ mit dem Wert „ v “.

Dieser wird intern als 64-Bit-Ganzzahl gespeichert und behält daher seine volle Genauigkeit bei, solange er mit ` toInteger()` abgerufen wird. Beim Abrufen des Werts mit ` toDouble()` geht jedoch Genauigkeit verloren, es sei denn, der Wert liegt zwischen ±2⁵³.

Dies ist eine überladene Funktion.

Siehe auch „ toInteger()“ und „ toDouble()“.

[noexcept] QJsonValue::QJsonValue(const QJsonValue &other)

Erstellt eine Kopie von „ other “.

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

Erstellt ein `QJsonValue` aus ` other`.

[noexcept] QJsonValue::~QJsonValue()

Zerstört den Wert.

[static, since 6.9] QJsonValue QJsonValue::fromJson(QByteArrayView json, QJsonParseError *error = nullptr)

Analysiert json als UTF-8-kodierten JSON-Wert und erstellt daraus ein QJsonValue.

Gibt einen gültigen ` QJsonValue ` zurück, wenn das Parsen erfolgreich war. Bei einem Fehler ist der Rückgabewert ` undefined`, und die optionale Variable ` error ` enthält weitere Details zum Fehler.

Diese Funktion wurde in Qt 6.9 eingeführt.

Siehe auch ` QJsonParseError`, ` isUndefined()` und ` toJson()`.

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

Konvertiert „ variant “ in einen „ QJsonValue “ und gibt diesen zurück.

Bei der Konvertierung werden die Typen von ` QVariant ` wie folgt umgewandelt:

QuelltypZieltyp
QJsonValue::Null
QJsonValue::Bool
QJsonValue::Double
QJsonValue::String
QJsonValue::Array
QJsonValue::Object
QJsonValue::String. Bei der Konvertierung wird ` QUrl::toString()` mit dem Flag ` QUrl::FullyEncoded` verwendet, um maximale Kompatibilität beim Parsen der URL zu gewährleisten
QJsonValue::String. Seit Qt 5.11 enthält die resultierende Zeichenkette keine Klammern mehr
Unabhängig davon, welchen Typ ` QCborValue::toJsonValue()` zurückgibt.
QJsonValue::Array. Siehe QCborValue::toJsonValue() für Konvertierungsbeschränkungen.
QJsonValue::Map. Siehe „ QCborValue::toJsonValue()“ für Konvertierungsbeschränkungen und die „Stringifizierung“ von Map-Schlüsseln.
Informationsverlust und andere Typen

QVariant können mehr Informationen enthalten, als in JSON darstellbar ist. Wenn der ` QVariant ` nicht zu den oben genannten Typen gehört, ist die Konvertierung nicht garantiert und kann sich in zukünftigen Versionen von Qt XML ändern, wie es beim UUID-Typ der Fall war. Der Code sollte darauf abzielen, keine anderen Typen als die oben aufgeführten zu verwenden.

Wenn ` QVariant::isNull()` `true` zurückgibt, wird ein Null-Wert ` QJsonValue ` zurückgegeben oder in die Liste bzw. das Objekt eingefügt, unabhängig vom Typ von ` QVariant`. Beachten Sie, dass die Verhaltensänderung in Qt 6.0, die sich auf ` QVariant::isNull()` auswirkt, auch diese Funktion betrifft.

Ein Gleitkommawert, der entweder unendlich oder NaN ist, wird in einen leeren JSON-Wert umgewandelt. Seit Qt 6.0 kann QJsonValue die volle Genauigkeit jeder 64-Bit-Ganzzahl mit Vorzeichen verlustfrei speichern, in früheren Versionen kann es jedoch bei Werten außerhalb des Bereichs von ±2^53 zu Genauigkeitsverlusten kommen. Vorzeichenlose 64-Bit-Werte, die größer oder gleich 2^63 sind, verlieren entweder an Genauigkeit oder werden fälschlicherweise als negative Werte interpretiert; daher sollte die Verwendung von ` QMetaType::ULongLong ` vermieden werden.

Bei anderen, oben nicht aufgeführten Typen wird eine Konvertierung in eine Zeichenkette versucht, in der Regel – jedoch nicht immer – durch Aufruf von ` QVariant::toString()`. Schlägt die Konvertierung fehl, wird der Wert durch einen leeren JSON-Wert ersetzt. Beachten Sie, dass „ QVariant::toString()“ für die meisten Typen ebenfalls verlustbehaftet ist. Wenn beispielsweise der übergebene „ QVariant “ rohe Byte-Array-Daten darstellt, wird empfohlen, diese vorab in Base64 (oder eine andere verlustfreie Kodierung) zu kodieren; andernfalls wird eine verlustbehaftete Konvertierung mit „ QString::fromUtf8()“ durchgeführt.

Bitte beachten Sie, dass sich die Konvertierungen über QVariant::toString() jederzeit ändern können. Sowohl QVariant als auch QJsonValue könnten in Zukunft um weitere Typen erweitert werden, was zu einer Änderung der Konvertierungsweise dieser Funktion führen würde.

Siehe auch toVariant() und QCborValue::fromVariant().

bool QJsonValue::isArray() const

Gibt „ true “ zurück, wenn der Wert ein Array enthält.

Siehe auch toArray().

bool QJsonValue::isBool() const

Gibt „ true “ zurück, wenn der Wert einen booleschen Wert enthält.

Siehe auch toBool().

bool QJsonValue::isDouble() const

Gibt „ true “ zurück, wenn der Wert einen Double-Wert enthält.

Siehe auch toDouble().

bool QJsonValue::isNull() const

Gibt „ true “ zurück, wenn der Wert null ist.

bool QJsonValue::isObject() const

Gibt „ true “ zurück, wenn der Wert ein Objekt enthält.

Siehe auch ` toObject()`.

bool QJsonValue::isString() const

Gibt „ true “ zurück, wenn der Wert eine Zeichenkette enthält.

Siehe auch toString().

bool QJsonValue::isUndefined() const

Gibt „ true “ zurück, wenn der Wert nicht definiert ist. Dies kann in bestimmten Fehlerfällen vorkommen, z. B. beim Zugriff auf einen nicht vorhandenen Schlüssel in einer „ QJsonObject “.

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

Tauscht diesen Wert mit „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.

QJsonArray QJsonValue::toArray(const QJsonArray &defaultValue) const

Wandelt den Wert in ein Array um und gibt ihn zurück.

Wenn „ type()“ kein Array ist, wird der Wert „ defaultValue “ zurückgegeben.

QJsonArray QJsonValue::toArray() const

Wandelt den Wert in ein Array um und gibt ihn zurück.

Wenn „ type()“ kein Array ist, wird ein „ QJsonArray()“ zurückgegeben.

Dies ist eine überladene Funktion.

bool QJsonValue::toBool(bool defaultValue = false) const

Wandelt den Wert in einen bool-Wert um und gibt ihn zurück.

Wenn „ type()“ kein bool ist, wird „ defaultValue “ zurückgegeben.

double QJsonValue::toDouble(double defaultValue = 0) const

Wandelt den Wert in einen Double-Wert um und gibt ihn zurück.

Wenn „ type()“ kein „Double“ ist, wird der Wert „ defaultValue “ zurückgegeben.

int QJsonValue::toInt(int defaultValue = 0) const

Wandelt den Wert in einen int-Wert um und gibt ihn zurück.

Wenn „ type()“ kein „Double“ ist oder der Wert keine ganze Zahl ist, wird die Ausnahme „ defaultValue “ zurückgegeben.

[since 6.0] qint64 QJsonValue::toInteger(qint64 defaultValue = 0) const

Wandelt den Wert in eine Ganzzahl um und gibt ihn zurück.

Wenn „ type()“ kein „Double“ ist oder der Wert keine als „qint64“ darstellbare ganze Zahl ist, wird der Fehler „ defaultValue “ zurückgegeben.

Diese Funktion wurde in Qt 6.0 eingeführt.

[since 6.9] QByteArray QJsonValue::toJson(QJsonValue::JsonFormat format = JsonFormat::Indented) const

Konvertiert den „ QJsonValue “ in einen UTF-8-kodierten JSON-Wert im angegebenen „ format “.

Diese Funktion wurde in Qt 6.9 eingeführt.

Siehe auch „ fromJson()“ und „ JsonFormat “.

QJsonObject QJsonValue::toObject(const QJsonObject &defaultValue) const

Wandelt den Wert in ein Objekt um und gibt ihn zurück.

Wenn „ type()“ kein „Object“ ist, wird „ defaultValue “ zurückgegeben.

QJsonObject QJsonValue::toObject() const

Wandelt den Wert in ein Objekt um und gibt ihn zurück.

Wenn „ type()“ nicht „Object“ ist, wird „ QJsonObject()“ zurückgegeben.

Dies ist eine überladene Funktion.

QString QJsonValue::toString() const

Wandelt den Wert in einen „ QString “ um und gibt ihn zurück.

Ist ` type()` kein String, wird ein `null`- QString -Wert zurückgegeben.

Siehe auch ` QString::isNull()`.

QString QJsonValue::toString(const QString &defaultValue) const

Wandelt den Wert in einen „ QString “ um und gibt ihn zurück.

Ist ` type()` kein String, wird der Wert ` defaultValue ` zurückgegeben.

Siehe auch ` toStringView()`.

[since 6.10] QAnyStringView QJsonValue::toStringView(QAnyStringView defaultValue = {}) const

Gibt den in diesem ` QJsonValue` gespeicherten Zeichenfolgenwert zurück, sofern dieser vom Typ ` string ` ist. Andernfalls wird ` defaultValue` zurückgegeben. Da ` QJsonValue ` Zeichenfolgen entweder im US-ASCII-, UTF-8- oder UTF-16-Format speichert, kann der zurückgegebene Wert ` QAnyStringView ` in einer dieser Kodierungen vorliegen.

Diese Funktion reserviert keinen Speicher. Der Rückgabewert ist bis zum nächsten Aufruf einer nicht-konstanten Mitgliedsfunktion für dieses Objekt gültig. Wenn dieses Objekt den Gültigkeitsbereich verlässt, ist der Rückgabewert bis zum nächsten Aufruf einer nicht-konstanten Mitgliedsfunktion für das übergeordnete JSON-Objekt oder -Array gültig.

Diese Funktion wurde in Qt 6.10 eingeführt.

Siehe auch ` toString()`.

QVariant QJsonValue::toVariant() const

Konvertiert den Wert in einen „ QVariant “ ().

Die „ QJsonValue “-Typen werden wie folgt konvertiert:

KonstanteBeschreibung
NullQMetaType::Nullptr
BoolQMetaType::Bool
DoubleQMetaType::Double oder QMetaType::LongLong
StringQString
ArrayQVariantList
ObjectQVariantMap
UndefinedQVariant()

Siehe auch fromVariant().

QJsonValue::Type QJsonValue::type() const

Gibt den Typ des Werts zurück.

Siehe auch „ QJsonValue::Type “.

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

Mit „Move“ wird „ other “ diesem Wert zugewiesen.

[noexcept] QJsonValue &QJsonValue::operator=(const QJsonValue &other)

Weist diesem Objekt den in „ other “ gespeicherten Wert zu.

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

Gibt ein ` QJsonValue ` zurück, das den Wert für den Schlüssel ` key` darstellt.

Entspricht dem Aufruf von ` toObject()`.value(key).

Der zurückgegebene ` QJsonValue ` ist ` QJsonValue::Undefined `, wenn der Schlüssel nicht existiert oder wenn ` isObject()` den Wert „false“ zurückgibt.

Siehe auch „ QJsonValue“ , „ QJsonValue::isUndefined()“ und „ QJsonObject “.

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

Gibt ein ` QJsonValue ` zurück, das den Wert für den Index ` i` darstellt.

Entspricht dem Aufruf von ` toArray()`.at(i).

Der zurückgegebene ` QJsonValue ` ist ` QJsonValue::Undefined`, wenn ` i ` außerhalb des zulässigen Bereichs liegt oder wenn ` isArray()` falsch ist.

Siehe auch „ QJsonValue“ , „ QJsonValue::isUndefined()“ und „ QJsonArray “.

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

Dies ist eine überladene Funktion.

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

Dies ist eine überladene Funktion.

Verwandte Nicht-Mitglieder

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

Gibt „ true “ zurück, wenn der Wert von „ lhs “ nicht mit dem Wert von „ rhs “ übereinstimmt; andernfalls „ false “.

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

Gibt „ true “ zurück, wenn der Wert von „ lhs “ mit dem Wert von „ rhs “ übereinstimmt, andernfalls „ false “.

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