Question

there is a QJsonObject

    {
        "a":"...",
        "b":"...",
        "c":"..."
    }

is there a method to check if this object contains "a"?

Was it helpful?

Solution

You have a few options, according to the documentation:

  • The most obvious is QJsonObject::contains which returns a bool
  • You can call QJsonObject::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.
  • You can call 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 it

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

OTHER TIPS

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:

Having mentioned all this, you may not be entirely surprised that the requested class have a method called contains as follows:

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top