5

QJsonObject があります

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

このオブジェクトに「a」が含まれているかどうかを確認する方法はありますか?

4

2 に答える 2

15

ドキュメントによると、いくつかのオプションがあります。

  • 最も明白なのはQJsonObject::contains、どちらが bool を返すかです
  • QJsonObject::findイテレータを返すものを呼び出すことができます。アイテムが見つからない場合、戻り値はQJsonObject::endとにかくイテレータが必要な場合はこれを使用します。
  • を呼び出すことができますQJsonObject::value。これは、存在する場合はキーの値を返し、存在しない場合はキーの値を返しQJsonValue::Undefinedます。いずれにせよ value メソッドを使用してキーの値を取得しているので、これにより、2 回ではなく 1 回のルックアップが可能になります。これをパフォーマンスの向上のために使用したくなるかもしれませんが、読みにくくなることに注意してください。ほとんどの場合、パフォーマンスの向上は十分に小さいため、おそらくそれほど価値はありません。

これらはすべて、Qt のドキュメントから直接引用したものです。Qt について私が気に入っているのは、素晴らしいドキュメントです。このような質問がある場合は、最初に Qt に立ち寄ることをお勧めします。

于 2014-04-10T14:59:03.303 に答える
2

そうですね、一般的に、Qt は API の「contains」をそのようなものに使用します。以下の場所を見れば一目瞭然です。

これらすべてについて述べたので、要求されたクラスにcontains次のように呼び出されるメソッドがあることにまったく驚かないかもしれません。

于 2014-04-10T20:51:12.987 に答える