there is a QJsonObject
{
"a":"...",
"b":"...",
"c":"..."
}
is there a method to check if this object contains "a"?
You have a few options, according to the documentation:
QJsonObject::contains
which returns a boolQJsonObject::find
which will return an iterator. If the item isn't found, the return value will be equal to QJsonObject::end
Use this if you need an iterator anyways.QJsonObject::value
, which will return the value for the key if present, and QJsonValue::Undefined
otherwise. You're probably using the value method anyways to get the value for a key, so this will allow you to do one lookup instead of two. It may be tempting to use this for a performance boost, but remember that it will be harder to read and in most cases the performance gain is small enough that it's probably not worth itAll of this came directly from the Qt documentation - my favorite thing about Qt is their fantastic documentation, so I encourage you to make that your first stop when you have questions like these.
Right, so in general, Qt uses the API "contains" for such things. If you take a look at the following places, you will see it yourself:
QHash: bool QHash::contains(const Key & key) const
QMap: bool QMap::contains(const Key & key) const
QStringList: bool QStringList::contains(const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QString: bool QString::contains(const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
QList: bool QList::contains(const T & value) const
QVector: bool QVector::contains(const T & value) const
QByteArray: bool QByteArray::contains(const QByteArray & ba) const
Having mentioned all this, you may not be entirely surprised that the requested class have a method called contains
as follows:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With