5

有一个 QJsonObject

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

有没有办法检查这个对象是否包含“a”?

4

2 回答 2

15

根据文档,您有几个选择:

  • 最明显的是QJsonObject::contains返回一个布尔值
  • 您可以调用QJsonObject::findwhich 将返回一个迭代器。如果未找到该项目,则返回值将等于QJsonObject::endUse this 如果您仍然需要迭代器。
  • 您可以调用QJsonObject::value,它将返回键的值(如果存在),QJsonValue::Undefined否则返回。无论如何,您可能都在使用 value 方法来获取键的值,因此这将允许您进行一次查找而不是两次查找。使用它来提升性能可能很诱人,但请记住,它会更难阅读,并且在大多数情况下,性能提升足够小,可能不值得

所有这些都直接来自 Qt 文档——我最喜欢 Qt 的地方是他们出色的文档,所以我鼓励您在遇到此类问题时将其作为您的第一站。

于 2014-04-10T14:59:03.303 回答
2

是的,所以一般来说,Qt 使用 API“包含”来处理这些事情。如果你看看以下几个地方,你会自己看到:

提到了所有这些,您可能不会对请求的类有一个contains如下调用的方法感到完全惊讶:

于 2014-04-10T20:51:12.987 回答