QtBase  v6.3.1
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
QJsonObject Class Reference

The QJsonObject class encapsulates a JSON object. More...

#include <qjsonobject.h>

Classes

class  const_iterator
 The QJsonObject::const_iterator class provides an STL-style const iterator for QJsonObject. More...
 
class  iterator
 The QJsonObject::iterator class provides an STL-style non-const iterator for QJsonObject. More...
 

Public Types

typedef iterator Iterator
 
typedef const_iterator ConstIterator
 
typedef QJsonValue mapped_type
 
typedef QString key_type
 
typedef qsizetype size_type
 

Public Member Functions

 QJsonObject ()
 
 QJsonObject (std::initializer_list< QPair< QString, QJsonValue > > args)
 
 ~QJsonObject ()
 
 QJsonObject (const QJsonObject &other)
 
QJsonObjectoperator= (const QJsonObject &other)
 
 QJsonObject (QJsonObject &&other) noexcept
 
QJsonObjectoperator= (QJsonObject &&other) noexcept
 
void swap (QJsonObject &other) noexcept
 
QVariantMap toVariantMap () const
 
QVariantHash toVariantHash () const
 
QStringList keys () const
 
qsizetype size () const
 
qsizetype count () const
 
qsizetype length () const
 
bool isEmpty () const
 
QJsonValue value (const QString &key) const
 
QJsonValue operator[] (const QString &key) const
 
QJsonValueRef operator[] (const QString &key)
 
QJsonValue value (QStringView key) const
 
QJsonValue value (QLatin1String key) const
 
QJsonValue operator[] (QStringView key) const
 
QJsonValue operator[] (QLatin1String key) const
 
QJsonValueRef operator[] (QStringView key)
 
QJsonValueRef operator[] (QLatin1String key)
 
void remove (const QString &key)
 
QJsonValue take (const QString &key)
 
bool contains (const QString &key) const
 
void remove (QStringView key)
 
void remove (QLatin1String key)
 
QJsonValue take (QStringView key)
 
QJsonValue take (QLatin1String key)
 
bool contains (QStringView key) const
 
bool contains (QLatin1String key) const
 
bool operator== (const QJsonObject &other) const
 
bool operator!= (const QJsonObject &other) const
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator constBegin () const
 
iterator end ()
 
const_iterator end () const
 
const_iterator constEnd () const
 
iterator erase (iterator it)
 
iterator find (const QString &key)
 
const_iterator find (const QString &key) const
 
const_iterator constFind (const QString &key) const
 
iterator insert (const QString &key, const QJsonValue &value)
 
iterator find (QStringView key)
 
iterator find (QLatin1String key)
 
const_iterator find (QStringView key) const
 
const_iterator find (QLatin1String key) const
 
const_iterator constFind (QStringView key) const
 
const_iterator constFind (QLatin1String key) const
 
iterator insert (QStringView key, const QJsonValue &value)
 
iterator insert (QLatin1String key, const QJsonValue &value)
 
bool empty () const
 

Static Public Member Functions

static QJsonObject fromVariantMap (const QVariantMap &map)
 
static QJsonObject fromVariantHash (const QVariantHash &map)
 

Friends

class iterator
 
class const_iterator
 
class QJsonValue
 
class QJsonDocument
 
class QJsonValueRef
 
class QCborMap
 
Q_CORE_EXPORT QDebug operator<< (QDebug, const QJsonObject &)
 

Detailed Description

The QJsonObject class encapsulates a JSON object.

\inmodule QtCore

\reentrant

Since
5.0

A JSON object is a list of key value pairs, where the keys are unique strings and the values are represented by a QJsonValue.

A QJsonObject can be converted to and from a QVariantMap. You can query the number of (key, value) pairs with size(), insert(), and remove() entries from it and iterate over its content using the standard C++ iterator pattern.

QJsonObject is an implicitly shared class, and shares the data with the document it has been created from as long as it is not being modified.

You can convert the object to and from text based JSON through QJsonDocument.

See also
{JSON Support in Qt}, {JSON Save Game Example}

Definition at line 55 of file qjsonobject.h.

Member Typedef Documentation

◆ ConstIterator

Qt-style synonym for QJsonObject::const_iterator.

Definition at line 260 of file qjsonobject.h.

◆ Iterator

Qt-style synonym for QJsonObject::iterator.

Definition at line 259 of file qjsonobject.h.

◆ key_type

Typedef for QString. Provided for STL compatibility.

Definition at line 278 of file qjsonobject.h.

◆ mapped_type

Typedef for QJsonValue. Provided for STL compatibility.

Definition at line 277 of file qjsonobject.h.

◆ size_type

Typedef for qsizetype. Provided for STL compatibility.

Definition at line 279 of file qjsonobject.h.

Constructor & Destructor Documentation

◆ QJsonObject() [1/4]

QJsonObject::QJsonObject ( )
default

Constructs an empty JSON object.

See also
isEmpty()

◆ QJsonObject() [2/4]

QJsonObject::QJsonObject ( std::initializer_list< QPair< QString, QJsonValue > >  args)
Since
5.4 Constructs a QJsonObject instance initialized from args initialization list. For example:
{
{"property1", 1},
{"property2", 2}
};
The QJsonObject class encapsulates a JSON object.
Definition: qjsonobject.h:56

Definition at line 148 of file qjsonobject.cpp.

Here is the call graph for this function:

◆ ~QJsonObject()

QJsonObject::~QJsonObject ( )
default

Destroys the object.

◆ QJsonObject() [3/4]

QJsonObject::QJsonObject ( const QJsonObject other)

Creates a copy of other.

Since QJsonObject is implicitly shared, the copy is shallow as long as the object does not get modified.

Definition at line 160 of file qjsonobject.cpp.

Here is the call graph for this function:

◆ QJsonObject() [4/4]

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

Move-constructs a QJsonObject from other.

Definition at line 165 of file qjsonobject.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ begin() [1/2]

QJsonObject::iterator QJsonObject::begin ( )
inline

Returns an \l{STL-style iterators}{STL-style iterator} pointing to the first item in the object.

See also
constBegin(), end()

Definition at line 250 of file qjsonobject.h.

◆ begin() [2/2]

QJsonObject::const_iterator QJsonObject::begin ( ) const
inline

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

Definition at line 251 of file qjsonobject.h.

◆ constBegin()

QJsonObject::const_iterator QJsonObject::constBegin ( ) const
inline

Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the first item in the object.

See also
begin(), constEnd()

Definition at line 252 of file qjsonobject.h.

◆ constEnd()

QJsonObject::const_iterator QJsonObject::constEnd ( ) const
inline

Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the imaginary item after the last item in the object.

See also
constBegin(), end()

Definition at line 255 of file qjsonobject.h.

◆ constFind() [1/3]

QJsonObject::const_iterator QJsonObject::constFind ( const QString key) const

Returns a const iterator pointing to the item with key key in the map.

If the map contains no item with key key, the function returns constEnd().

Definition at line 792 of file qjsonobject.cpp.

◆ constFind() [2/3]

QJsonObject::const_iterator QJsonObject::constFind ( QLatin1String  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.7

Definition at line 811 of file qjsonobject.cpp.

◆ constFind() [3/3]

QJsonObject::const_iterator QJsonObject::constFind ( 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 802 of file qjsonobject.cpp.

◆ contains() [1/3]

bool QJsonObject::contains ( const QString key) const

Returns true if the object contains key key.

See also
insert(), remove(), take()

Definition at line 632 of file qjsonobject.cpp.

Here is the caller graph for this function:

◆ contains() [2/3]

bool QJsonObject::contains ( QLatin1String  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.7

Definition at line 651 of file qjsonobject.cpp.

◆ contains() [3/3]

bool QJsonObject::contains ( 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 642 of file qjsonobject.cpp.

◆ count()

qsizetype QJsonObject::count ( ) const
inline

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

Same as size().

Definition at line 87 of file qjsonobject.h.

◆ empty()

bool QJsonObject::empty ( ) const
inline

This function is provided for STL compatibility. It is equivalent to isEmpty(), returning true if the object is empty; otherwise returning false.

Definition at line 281 of file qjsonobject.h.

◆ end() [1/2]

QJsonObject::iterator QJsonObject::end ( )
inline

Returns an \l{STL-style iterators}{STL-style iterator} pointing to the imaginary item after the last item in the object.

See also
begin(), constEnd()

Definition at line 253 of file qjsonobject.h.

◆ end() [2/2]

QJsonObject::const_iterator QJsonObject::end ( ) const
inline

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

Definition at line 254 of file qjsonobject.h.

◆ erase()

QJsonObject::iterator QJsonObject::erase ( QJsonObject::iterator  it)

Removes the (key, value) pair pointed to by the iterator it from the map, and returns an iterator to the next item in the map.

See also
remove()

Definition at line 708 of file qjsonobject.cpp.

◆ find() [1/6]

QJsonObject::iterator QJsonObject::find ( const QString key)

Returns an iterator pointing to the item with key key in the map.

If the map contains no item with key key, the function returns end().

Definition at line 727 of file qjsonobject.cpp.

Here is the caller graph for this function:

◆ find() [2/6]

QJsonObject::const_iterator QJsonObject::find ( const QString key) const
inline

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

Definition at line 263 of file qjsonobject.h.

Here is the caller graph for this function:

◆ find() [3/6]

QJsonObject::iterator QJsonObject::find ( QLatin1String  key)

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

Since
5.7

Definition at line 746 of file qjsonobject.cpp.

Here is the caller graph for this function:

◆ find() [4/6]

QJsonObject::const_iterator QJsonObject::find ( QLatin1String  key) const
inline

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

Since
5.7

Definition at line 270 of file qjsonobject.h.

Here is the caller graph for this function:

◆ find() [5/6]

QJsonObject::iterator QJsonObject::find ( QStringView  key)

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 737 of file qjsonobject.cpp.

Here is the caller graph for this function:

◆ find() [6/6]

QJsonObject::const_iterator QJsonObject::find ( QStringView  key) const
inline

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 269 of file qjsonobject.h.

Here is the caller graph for this function:

◆ fromVariantHash()

QJsonObject QJsonObject::fromVariantHash ( const QVariantHash hash)
static

Converts the variant hash hash to a QJsonObject.

Since
5.5

The keys in hash will be used as the keys in the JSON object, and the QVariant values will be converted to JSON values.

Note
Conversion from \l QVariant is not completely lossless. Please see the documentation in QJsonValue::fromVariant() for more information.
See also
fromVariantMap(), toVariantHash(), QJsonValue::fromVariant()

Definition at line 242 of file qjsonobject.cpp.

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

◆ fromVariantMap()

QJsonObject QJsonObject::fromVariantMap ( const QVariantMap map)
static

Converts the variant map map to a QJsonObject.

The keys in map will be used as the keys in the JSON object, and the QVariant values will be converted to JSON values.

Note
Conversion from \l QVariant is not completely lossless. Please see the documentation in QJsonValue::fromVariant() for more information.
See also
fromVariantHash(), toVariantMap(), QJsonValue::fromVariant()

Definition at line 213 of file qjsonobject.cpp.

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

◆ insert() [1/3]

QJsonObject::iterator QJsonObject::insert ( const QString key,
const QJsonValue value 
)

Inserts a new item with the key key and a value of value.

If there is already an item with the key key, then that item's value is replaced with value.

Returns an iterator pointing to the inserted item.

If the value is QJsonValue::Undefined, it will cause the key to get removed from the object. The returned iterator will then point to end().

See also
remove(), take(), QJsonObject::iterator, end()

Definition at line 466 of file qjsonobject.cpp.

Here is the caller graph for this function:

◆ insert() [2/3]

QJsonObject::iterator QJsonObject::insert ( QLatin1String  key,
const QJsonValue value 
)

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 485 of file qjsonobject.cpp.

◆ insert() [3/3]

QJsonObject::iterator QJsonObject::insert ( QStringView  key,
const QJsonValue value 
)

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 476 of file qjsonobject.cpp.

◆ isEmpty()

bool QJsonObject::isEmpty ( ) const

Returns true if the object is empty. This is the same as size() == 0.

See also
size()

Definition at line 294 of file qjsonobject.cpp.

Here is the call graph for this function:

◆ keys()

QStringList QJsonObject::keys ( ) const

Returns a list of all keys in this object.

The list is sorted lexographically.

Definition at line 270 of file qjsonobject.cpp.

Here is the call graph for this function:

◆ length()

qsizetype QJsonObject::length ( ) const
inline

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

Same as size().

Definition at line 88 of file qjsonobject.h.

◆ operator!=()

bool QJsonObject::operator!= ( const QJsonObject other) const

Returns true if other is not equal to this object.

Definition at line 696 of file qjsonobject.cpp.

Here is the call graph for this function:

◆ operator=() [1/2]

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

Assigns other to this object.

Definition at line 174 of file qjsonobject.cpp.

Here is the call graph for this function:

◆ operator=() [2/2]

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

Move-assigns other to this object.

Definition at line 69 of file qjsonobject.h.

Here is the call graph for this function:

◆ operator==()

bool QJsonObject::operator== ( const QJsonObject other) const

Returns true if other is equal to this object.

Definition at line 673 of file qjsonobject.cpp.

Here is the call graph for this function:

◆ operator[]() [1/6]

QJsonValueRef QJsonObject::operator[] ( const QString key)

Returns a reference to the value for key. If there is no value with key key in the object, one is created with a QJsonValue::Null value and then returned.

The return value is of type QJsonValueRef, a helper class for QJsonArray and QJsonObject. When you get an object of type QJsonValueRef, you can use it as if it were a reference to a QJsonValue. If you assign to it, the assignment will apply to the element in the QJsonArray or QJsonObject from which you got the reference.

See also
value()

Definition at line 408 of file qjsonobject.cpp.

◆ operator[]() [2/6]

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

Returns a QJsonValue representing the value for the key key.

This does the same as value().

The returned QJsonValue is QJsonValue::Undefined if the key does not exist.

See also
value(), QJsonValue, QJsonValue::isUndefined()

Definition at line 374 of file qjsonobject.cpp.

◆ operator[]() [3/6]

QJsonValueRef QJsonObject::operator[] ( QLatin1String  key)

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

Since
5.7

Definition at line 427 of file qjsonobject.cpp.

◆ operator[]() [4/6]

QJsonValue QJsonObject::operator[] ( QLatin1String  key) const
inline

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

Since
5.7

Definition at line 99 of file qjsonobject.h.

◆ operator[]() [5/6]

QJsonValueRef QJsonObject::operator[] ( QStringView  key)

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 418 of file qjsonobject.cpp.

◆ operator[]() [6/6]

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

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 98 of file qjsonobject.h.

◆ remove() [1/3]

void QJsonObject::remove ( const QString key)

Removes key from the object.

See also
insert(), take()

Definition at line 531 of file qjsonobject.cpp.

◆ remove() [2/3]

void QJsonObject::remove ( QLatin1String  key)

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 550 of file qjsonobject.cpp.

◆ remove() [3/3]

void QJsonObject::remove ( QStringView  key)

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 541 of file qjsonobject.cpp.

◆ size()

qsizetype QJsonObject::size ( ) const

Returns the number of (key, value) pairs stored in the object.

Definition at line 284 of file qjsonobject.cpp.

Here is the call graph for this function:

◆ swap()

void QJsonObject::swap ( QJsonObject other)
inlinenoexcept
Since
5.10

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

Definition at line 75 of file qjsonobject.h.

Here is the call graph for this function:

◆ take() [1/3]

QJsonValue QJsonObject::take ( const QString key)

Removes key from the object.

Returns a QJsonValue containing the value referenced by key. If key was not contained in the object, the returned QJsonValue is QJsonValue::Undefined.

See also
insert(), remove(), QJsonValue

Definition at line 582 of file qjsonobject.cpp.

◆ take() [2/3]

QJsonValue QJsonObject::take ( QLatin1String  key)

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 601 of file qjsonobject.cpp.

◆ take() [3/3]

QJsonValue QJsonObject::take ( QStringView  key)

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 592 of file qjsonobject.cpp.

◆ toVariantHash()

QVariantHash QJsonObject::toVariantHash ( ) const

Converts this object to a QVariantHash.

Since
5.5

Returns the created hash.

See also
toVariantMap()

Definition at line 260 of file qjsonobject.cpp.

Here is the call graph for this function:

◆ toVariantMap()

QVariantMap QJsonObject::toVariantMap ( ) const

Converts this object to a QVariantMap.

Returns the created map.

See also
toVariantHash()

Definition at line 225 of file qjsonobject.cpp.

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

◆ value() [1/3]

QJsonValue QJsonObject::value ( const QString key) const

Returns a QJsonValue representing the value for the key key.

The returned QJsonValue is QJsonValue::Undefined if the key does not exist.

See also
QJsonValue, QJsonValue::isUndefined()

Definition at line 324 of file qjsonobject.cpp.

Here is the caller graph for this function:

◆ value() [2/3]

QJsonValue QJsonObject::value ( QLatin1String  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.7

Definition at line 343 of file qjsonobject.cpp.

Here is the caller graph for this function:

◆ value() [3/3]

QJsonValue QJsonObject::value ( 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 334 of file qjsonobject.cpp.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ const_iterator

friend class const_iterator
friend

Definition at line 247 of file qjsonobject.h.

◆ iterator

friend class iterator
friend

Definition at line 182 of file qjsonobject.h.

◆ operator<<

Q_CORE_EXPORT QDebug operator<< ( QDebug  ,
const QJsonObject  
)
friend

Definition at line 1474 of file qjsonobject.cpp.

◆ QCborMap

friend class QCborMap
friend

Definition at line 287 of file qjsonobject.h.

◆ QJsonDocument

friend class QJsonDocument
friend

Definition at line 285 of file qjsonobject.h.

◆ QJsonValue

friend class QJsonValue
friend

Definition at line 284 of file qjsonobject.h.

◆ QJsonValueRef

friend class QJsonValueRef
friend

Definition at line 286 of file qjsonobject.h.


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