QJsonObject があります
{
"a":"...",
"b":"...",
"c":"..."
}
このオブジェクトに「a」が含まれているかどうかを確認する方法はありますか?
QJsonObject があります
{
"a":"...",
"b":"...",
"c":"..."
}
このオブジェクトに「a」が含まれているかどうかを確認する方法はありますか?
ドキュメントによると、いくつかのオプションがあります。
QJsonObject::contains
、どちらが bool を返すかですQJsonObject::find
イテレータを返すものを呼び出すことができます。アイテムが見つからない場合、戻り値はQJsonObject::end
とにかくイテレータが必要な場合はこれを使用します。QJsonObject::value
。これは、存在する場合はキーの値を返し、存在しない場合はキーの値を返しQJsonValue::Undefined
ます。いずれにせよ value メソッドを使用してキーの値を取得しているので、これにより、2 回ではなく 1 回のルックアップが可能になります。これをパフォーマンスの向上のために使用したくなるかもしれませんが、読みにくくなることに注意してください。ほとんどの場合、パフォーマンスの向上は十分に小さいため、おそらくそれほど価値はありません。これらはすべて、Qt のドキュメントから直接引用したものです。Qt について私が気に入っているのは、素晴らしいドキュメントです。このような質問がある場合は、最初に Qt に立ち寄ることをお勧めします。
そうですね、一般的に、Qt は API の「contains」をそのようなものに使用します。以下の場所を見れば一目瞭然です。
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
QByteArray: bool QByteArray::contains(const QByteArray & ba) const
これらすべてについて述べたので、要求されたクラスにcontains
次のように呼び出されるメソッドがあることにまったく驚かないかもしれません。