Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QJsonDocument Class Reference

\inmodule QtCore\reentrant More...

#include <qjsondocument.h>

+ Collaboration diagram for QJsonDocument:

Public Types

enum  JsonFormat { Indented , Compact }
 

Public Member Functions

 QJsonDocument ()
 Constructs an empty and invalid document.
 
 QJsonDocument (const QJsonObject &object)
 Creates a QJsonDocument from object.
 
 QJsonDocument (const QJsonArray &array)
 Constructs a QJsonDocument from array.
 
 ~QJsonDocument ()
 Deletes the document.
 
 QJsonDocument (const QJsonDocument &other)
 Creates a copy of the other document.
 
QJsonDocumentoperator= (const QJsonDocument &other)
 Assigns the other document to this QJsonDocument.
 
 QJsonDocument (QJsonDocument &&other) noexcept
 
QJsonDocumentoperator= (QJsonDocument &&other) noexcept
 
void swap (QJsonDocument &other) noexcept
 
QVariant toVariant () const
 Returns a QVariant representing the Json document.
 
QByteArray toJson (JsonFormat format=Indented) const
 
bool isEmpty () const
 Returns true if the document doesn't contain any data.
 
bool isArray () const
 Returns true if the document contains an array.
 
bool isObject () const
 Returns true if the document contains an object.
 
QJsonObject object () const
 Returns the QJsonObject contained in the document.
 
QJsonArray array () const
 Returns the QJsonArray contained in the document.
 
void setObject (const QJsonObject &object)
 Sets object as the main object of this document.
 
void setArray (const QJsonArray &array)
 Sets array as the main object of this document.
 
const QJsonValue operator[] (const QString &key) const
 Returns a QJsonValue representing the value for the key key.
 
const QJsonValue operator[] (QStringView key) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QJsonValue operator[] (QLatin1StringView key) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
const QJsonValue operator[] (qsizetype i) const
 Returns a QJsonValue representing the value for index i.
 
bool isNull () const
 returns true if this document is null.
 

Static Public Member Functions

static QJsonDocument fromVariant (const QVariant &variant)
 Creates a QJsonDocument from the QVariant variant.
 
static QJsonDocument fromJson (const QByteArray &json, QJsonParseError *error=nullptr)
 Parses json as a UTF-8 encoded JSON document, and creates a QJsonDocument from it.
 

Static Public Attributes

static const uint BinaryFormatTag = ('q' << 24) | ('b' << 16) | ('j' << 8) | ('s')
 

Friends

class QJsonValue
 
class QJsonPrivate::Parser
 
Q_CORE_EXPORT QDebug operator<< (QDebug, const QJsonDocument &)
 
Q_CORE_EXPORT bool comparesEqual (const QJsonDocument &lhs, const QJsonDocument &rhs) noexcept
 

Detailed Description

\inmodule QtCore

\reentrant

Since
5.0

The QJsonDocument class provides a way to read and write JSON documents.

\compares equality

QJsonDocument is a class that wraps a complete JSON document and can read this document from, and write it to, a UTF-8 encoded text-based representation.

A JSON document can be converted from its text-based representation to a QJsonDocument using QJsonDocument::fromJson(). toJson() converts it back to text. The parser is very fast and efficient and converts the JSON to the binary representation used by Qt.

Validity of the parsed document can be queried with !isNull()

A document can be queried as to whether it contains an array or an object using isArray() and isObject(). The array or object contained in the document can be retrieved using array() or object() and then read or manipulated.

See also
{JSON Support in Qt}, {Saving and Loading a Game}

Definition at line 47 of file qjsondocument.h.

Member Enumeration Documentation

◆ JsonFormat

Since
5.1

This value defines the format of the JSON byte array produced when converting to a QJsonDocument using toJson().

\value Indented Defines human readable output as follows:

{
"Array": [
true,
999,
"string"
],
"Key": "Value",
"null": null
}

\value Compact Defines a compact output as follows:

Enumerator
Indented 
Compact 

Definition at line 77 of file qjsondocument.h.

Constructor & Destructor Documentation

◆ QJsonDocument() [1/5]

QJsonDocument::QJsonDocument ( )

Constructs an empty and invalid document.

Definition at line 82 of file qjsondocument.cpp.

◆ QJsonDocument() [2/5]

QJsonDocument::QJsonDocument ( const QJsonObject & object)
explicit

Creates a QJsonDocument from object.

Definition at line 90 of file qjsondocument.cpp.

References setObject().

+ Here is the call graph for this function:

◆ QJsonDocument() [3/5]

QJsonDocument::QJsonDocument ( const QJsonArray & array)
explicit

Constructs a QJsonDocument from array.

Definition at line 99 of file qjsondocument.cpp.

References setArray().

+ Here is the call graph for this function:

◆ ~QJsonDocument()

QJsonDocument::~QJsonDocument ( )
default

Deletes the document.

Binary data set with fromRawData is not freed.

◆ QJsonDocument() [4/5]

QJsonDocument::QJsonDocument ( const QJsonDocument & other)

Creates a copy of the other document.

Definition at line 124 of file qjsondocument.cpp.

References other().

+ Here is the call graph for this function:

◆ QJsonDocument() [5/5]

QJsonDocument::QJsonDocument ( QJsonDocument && other)
noexcept
Since
5.10

Move-constructs a QJsonDocument from other.

Definition at line 135 of file qjsondocument.cpp.

Member Function Documentation

◆ array()

QJsonArray QJsonDocument::array ( ) const

Returns the QJsonArray contained in the document.

Returns an empty array if the document contains an object.

See also
isArray(), object(), setArray()

Definition at line 360 of file qjsondocument.cpp.

References QJsonPrivate::Value::container(), and isArray().

Referenced by deployQmlImports(), QCborValue::fromVariant(), QJsonValue::fromVariant(), and operator>>().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fromJson()

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

Parses json as a UTF-8 encoded JSON document, and creates a QJsonDocument from it.

Returns a valid (non-null) QJsonDocument if the parsing succeeds. If it fails, the returned document will be null, and the optional error variable will contain further details about the error.

See also
toJson(), QJsonParseError, isNull()

Definition at line 286 of file qjsondocument.cpp.

References QByteArray::constData(), error, QJsonPrivate::Parser::parse(), and QByteArray::size().

Referenced by AssimpImporter::AssimpImporter(), QCtfLibImpl::QCtfLibImpl(), deployQmlImports(), fromJson(), getRequestedDisplays(), QSSGRenderShaderMetadata::getShaderMetaData(), QDefaultOutputMapping::load(), QGtk3Json::load(), QKmsScreenConfig::loadConfig(), QGeoTiledMappingManagerEngineNokia::loadCopyrightsDescriptorsFromJson(), loadMapObject(), AndroidStyle::loadStyleData(), QV4DebugServiceImpl::messageReceived(), QV4DebugClient::messageReceived(), QQmlNativeDebugServiceImpl::messageReceived(), moduleFromJsonFile(), TileProvider::onNetworkReplyFinished(), QDeclarativeGeoJsonData::openUrl(), operator>>(), CategoryParser::parse(), Moc::parsePluginData(), QGeoRouteParserOsrmV5Private::parseReply(), QGeoRouteParserOsrmV4Private::parseReply(), readFromDevice(), readGpuFeatures(), readInputFile(), QRestReply::readJson(), readTranslationsCatalogs(), QOffscreenIntegration::resolveConfigFileConfiguration(), QV4DebugClient::response(), QGeoCodeJsonParser::run(), runQmlImportScanner(), scanImports(), and QEglFSEmulatorIntegration::screenInit().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ fromVariant()

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

Creates a QJsonDocument from the QVariant variant.

If the variant contains any other type than a QVariantMap, QVariantHash, QVariantList or QStringList, the returned document is invalid.

See also
toVariant()

Definition at line 195 of file qjsondocument.cpp.

References QCborArray::fromStringList(), QJsonObject::fromVariantHash(), QJsonArray::fromVariantList(), QJsonObject::fromVariantMap(), QMetaType::id(), QVariant::metaType(), setArray(), setObject(), QVariant::toHash(), QVariant::toList(), QVariant::toMap(), QVariant::toStringList(), and variant.

Referenced by injectExtra().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isArray()

bool QJsonDocument::isArray ( ) const

Returns true if the document contains an array.

See also
array(), isObject()

Definition at line 314 of file qjsondocument.cpp.

Referenced by array(), deployQmlImports(), QCborValue::fromVariant(), QJsonValue::fromVariant(), and operator[]().

+ Here is the caller graph for this function:

◆ isEmpty()

bool QJsonDocument::isEmpty ( ) const

Returns true if the document doesn't contain any data.

Definition at line 301 of file qjsondocument.cpp.

Referenced by QGtk3Json::load(), and QGtk3Json::save().

+ Here is the caller graph for this function:

◆ isNull()

bool QJsonDocument::isNull ( ) const

returns true if this document is null.

Null documents are documents created through the default constructor.

Documents created from UTF-8 encoded text or the binary format are validated during parsing. If validation fails, the returned document will also be null.

Definition at line 487 of file qjsondocument.cpp.

Referenced by QGeoTiledMappingManagerEngineNokia::loadCopyrightsDescriptorsFromJson().

+ Here is the caller graph for this function:

◆ isObject()

bool QJsonDocument::isObject ( ) const

Returns true if the document contains an object.

See also
object(), isArray()

Definition at line 327 of file qjsondocument.cpp.

Referenced by QT_BEGIN_NAMESPACE::checkDocument(), getRequestedDisplays(), QDefaultOutputMapping::load(), QKmsScreenConfig::loadConfig(), object(), operator[](), and operator[]().

+ Here is the caller graph for this function:

◆ object()

QJsonObject QJsonDocument::object ( ) const

Returns the QJsonObject contained in the document.

Returns an empty object if the document contains an array.

See also
isObject(), array(), setObject()

Definition at line 343 of file qjsondocument.cpp.

References QJsonPrivate::Value::container(), and isObject().

Referenced by QCtfLibImpl::QCtfLibImpl(), QT_BEGIN_NAMESPACE::checkDocument(), QCborValue::fromVariant(), QJsonValue::fromVariant(), getRequestedDisplays(), QDefaultOutputMapping::load(), QGtk3Json::load(), QKmsScreenConfig::loadConfig(), QGeoTiledMappingManagerEngineNokia::loadCopyrightsDescriptorsFromJson(), operator>>(), QT_BEGIN_NAMESPACE::parseDocument(), readFromDevice(), and readGpuFeatures().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator=() [1/2]

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

Assigns the other document to this QJsonDocument.

Returns a reference to this object.

Definition at line 149 of file qjsondocument.cpp.

References other().

+ Here is the call graph for this function:

◆ operator=() [2/2]

QJsonDocument & QJsonDocument::operator= ( QJsonDocument && other)
inlinenoexcept
Since
5.10

Move-assigns other to this document.

Definition at line 66 of file qjsondocument.h.

References other(), and swap().

+ Here is the call graph for this function:

◆ operator[]() [1/4]

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

Returns a QJsonValue representing the value for the key key.

Equivalent to calling object().value(key).

The returned QJsonValue is QJsonValue::Undefined if the key does not exist, or if isObject() is false.

Since
5.10
See also
QJsonValue, QJsonValue::isUndefined(), QJsonObject

Definition at line 411 of file qjsondocument.cpp.

◆ operator[]() [2/4]

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

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
5.10

Definition at line 432 of file qjsondocument.cpp.

References QJsonPrivate::Value::fromTrustedCbor(), isObject(), QJsonValue, and QJsonValue::Undefined.

+ Here is the call graph for this function:

◆ operator[]() [3/4]

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

Returns a QJsonValue representing the value for index i.

Equivalent to calling array().at(i).

The returned QJsonValue is QJsonValue::Undefined, if i is out of bounds, or if isArray() is false.

Since
5.10
See also
QJsonValue, QJsonValue::isUndefined(), QJsonArray

Definition at line 452 of file qjsondocument.cpp.

References QJsonPrivate::Value::fromTrustedCbor(), i, isArray(), QJsonValue, and QJsonValue::Undefined.

+ Here is the call graph for this function:

◆ operator[]() [4/4]

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

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Since
5.14

Definition at line 420 of file qjsondocument.cpp.

References QJsonPrivate::Value::fromTrustedCbor(), isObject(), QJsonValue, and QJsonValue::Undefined.

+ Here is the call graph for this function:

◆ setArray()

void QJsonDocument::setArray ( const QJsonArray & array)

Sets array as the main object of this document.

See also
setObject(), array()

Definition at line 389 of file qjsondocument.cpp.

References QCborValue::fromJsonValue().

Referenced by QJsonDocument(), and fromVariant().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ setObject()

void QJsonDocument::setObject ( const QJsonObject & object)

Sets object as the main object of this document.

See also
setArray(), object()

Definition at line 374 of file qjsondocument.cpp.

References QCborValue::fromJsonValue().

Referenced by QJsonDocument(), QQmlNativeDebugServiceImpl::emitAsynchronousMessageToClient(), fromVariant(), QQmlNativeDebugServiceImpl::messageReceived(), and QV4DebugServiceImpl::send().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ swap()

void QJsonDocument::swap ( QJsonDocument & other)
noexcept
Since
5.10

Swaps the document other with this. This operation is very fast and never fails.

Definition at line 140 of file qjsondocument.cpp.

References d, other(), and qSwap().

+ Here is the call graph for this function:

◆ toJson()

QByteArray QJsonDocument::toJson ( JsonFormat format = Indented) const
Since
5.1 Converts the QJsonDocument to a UTF-8 encoded JSON document in the provided format.
See also
fromJson(), JsonFormat

Definition at line 260 of file qjsondocument.cpp.

References QJsonPrivate::Writer::arrayToJson(), Compact, QJsonPrivate::Value::container(), and QJsonPrivate::Writer::objectToJson().

Referenced by collectJson(), QQmlNativeDebugServiceImpl::emitAsynchronousMessageToClient(), findPatternUnloaded(), QQmlNativeDebugServiceImpl::messageReceived(), operator<<(), operator<<(), QV4DebugClientPrivate::packMessage(), QGtk3Json::save(), QV4DebugServiceImpl::send(), QShaderDescription::toJson(), and JsonOutput::toJson().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ toVariant()

QVariant QJsonDocument::toVariant ( ) const

Returns a QVariant representing the Json document.

The returned variant will be a QVariantList if the document is a QJsonArray and a QVariantMap if the document is a QJsonObject.

See also
fromVariant(), QJsonValue::toVariant()

Definition at line 227 of file qjsondocument.cpp.

References QJsonPrivate::Value::container(), QJsonArray::toVariantList(), and QJsonObject::toVariantMap().

+ Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ comparesEqual

Q_CORE_EXPORT bool comparesEqual ( const QJsonDocument & lhs,
const QJsonDocument & rhs )
friend

Definition at line 465 of file qjsondocument.cpp.

◆ operator<<

Q_CORE_EXPORT QDebug operator<< ( QDebug ,
const QJsonDocument &  )
friend

Definition at line 493 of file qjsondocument.cpp.

◆ QJsonPrivate::Parser

friend class QJsonPrivate::Parser
friend

Definition at line 110 of file qjsondocument.h.

◆ QJsonValue

friend class QJsonValue
friend

Definition at line 109 of file qjsondocument.h.

Referenced by operator[](), operator[](), and operator[]().

Member Data Documentation

◆ BinaryFormatTag

const uint QJsonDocument::BinaryFormatTag = ('q' << 24) | ('b' << 16) | ('j' << 8) | ('s')
static

Definition at line 53 of file qjsondocument.h.


The documentation for this class was generated from the following files: