diff --git a/src/corelib/serialization/qjsonobject.cpp b/src/corelib/serialization/qjsonobject.cpp index 2fbac931dc0..2dd1eb01c63 100644 --- a/src/corelib/serialization/qjsonobject.cpp +++ b/src/corelib/serialization/qjsonobject.cpp @@ -32,7 +32,7 @@ QT_BEGIN_NAMESPACE \brief The QJsonObject class encapsulates a JSON object. \compares equality - \compareswith equality QJsonValue + \compareswith equality QJsonValue QJsonValueConstRef \endcompareswith A JSON object is a list of key value pairs, where the keys are unique strings diff --git a/src/corelib/serialization/qjsonobject.h b/src/corelib/serialization/qjsonobject.h index bdf35a4f20a..009f6c920f2 100644 --- a/src/corelib/serialization/qjsonobject.h +++ b/src/corelib/serialization/qjsonobject.h @@ -244,8 +244,14 @@ private: { return comparesEqual(lhs, rhs.toObject()); } + friend bool comparesEqual(const QJsonObject &lhs, + const QJsonValueConstRef &rhs) noexcept + { + return comparesEqual(lhs, rhs.toObject()); + } Q_DECLARE_EQUALITY_COMPARABLE(QJsonObject) Q_DECLARE_EQUALITY_COMPARABLE(QJsonObject, QJsonValue) + Q_DECLARE_EQUALITY_COMPARABLE(QJsonObject, QJsonValueConstRef) friend class QJsonValue; friend class QJsonDocument; friend class QJsonPrivate::Value; diff --git a/tests/auto/corelib/serialization/json/tst_qtjson.cpp b/tests/auto/corelib/serialization/json/tst_qtjson.cpp index 5046478547e..4b6468f42f7 100644 --- a/tests/auto/corelib/serialization/json/tst_qtjson.cpp +++ b/tests/auto/corelib/serialization/json/tst_qtjson.cpp @@ -187,6 +187,8 @@ void tst_QtJson::compareCompiles() QTestPrivate::testEqualityOperatorsCompile(); QTestPrivate::testEqualityOperatorsCompile(); QTestPrivate::testEqualityOperatorsCompile(); + QTestPrivate::testEqualityOperatorsCompile(); + QTestPrivate::testEqualityOperatorsCompile(); QTestPrivate::testEqualityOperatorsCompile(); QTestPrivate::testEqualityOperatorsCompile(); QTestPrivate::testEqualityOperatorsCompile(); @@ -670,6 +672,7 @@ void tst_QtJson::testObjectInsertCopies() QCOMPARE(obj.size(), 2); QCOMPARE(obj.value("value"), "TEST"); QCOMPARE(obj.value("prop2"), "TEST"); + QT_TEST_EQUALITY_OPS(rv, obj["value"].toObject(), true); } { QJsonObject obj;