このページでは

QJsonObject Class

QJsonObject クラスは、JSON オブジェクトをカプセル化しています。詳細...

ヘッダー: #include <QJsonObject>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

注:このクラスのすべての関数は再入可能です。

QJsonObject の比較

カテゴリ比較可能な型
等価性QJsonObject
等価性QJsonValue および QJsonValueConstRef。

パブリック型

パブリック関数

QJsonObject()
QJsonObject(std::initializer_list<std::pair<QString, QJsonValue>> args)
QJsonObject(const QJsonObject &other)
QJsonObject(QJsonObject &&other)
~QJsonObject()
(since 6.10) auto asKeyValueRange() &&
(since 6.10) auto asKeyValueRange() &
(since 6.10) auto asKeyValueRange() const &&
(since 6.10) auto asKeyValueRange() const &
QJsonObject::iterator begin()
QJsonObject::const_iterator begin() const
(since 6.12) QJsonObject::const_iterator cbegin() const
(since 6.12) QJsonObject::const_iterator cend() const
QJsonObject::const_iterator constBegin() const
QJsonObject::const_iterator constEnd() const
QJsonObject::const_iterator constFind(const QString &key) const
QJsonObject::const_iterator constFind(QLatin1StringView key) const
QJsonObject::const_iterator constFind(QStringView key) const
(since 6.10) QJsonObject::const_key_value_iterator constKeyValueBegin() const
(since 6.10) QJsonObject::const_key_value_iterator constKeyValueEnd() const
bool contains(const QString &key) const
bool contains(QLatin1StringView key) const
bool contains(QStringView key) const
qsizetype count() const
bool empty() const
QJsonObject::iterator end()
QJsonObject::const_iterator end() const
QJsonObject::iterator erase(QJsonObject::iterator it)
QJsonObject::iterator find(const QString &key)
QJsonObject::iterator find(QLatin1StringView key)
QJsonObject::iterator find(QStringView key)
QJsonObject::const_iterator find(QLatin1StringView key) const
QJsonObject::const_iterator find(QStringView key) const
QJsonObject::const_iterator find(const QString &key) const
QJsonObject::iterator insert(const QString &key, const QJsonValue &value)
QJsonObject::iterator insert(QLatin1StringView key, const QJsonValue &value)
QJsonObject::iterator insert(QStringView key, const QJsonValue &value)
bool isEmpty() const
(since 6.10) QJsonObject::key_value_iterator keyValueBegin()
(since 6.10) QJsonObject::const_key_value_iterator keyValueBegin() const
(since 6.10) QJsonObject::key_value_iterator keyValueEnd()
(since 6.10) QJsonObject::const_key_value_iterator keyValueEnd() const
QStringList keys() const
qsizetype length() const
void remove(const QString &key)
void remove(QLatin1StringView key)
void remove(QStringView key)
qsizetype size() const
void swap(QJsonObject &other)
QJsonValue take(const QString &key)
QJsonValue take(QLatin1StringView key)
QJsonValue take(QStringView key)
QVariantHash toVariantHash() const
QVariantMap toVariantMap() const
QJsonValue value(const QString &key) const
QJsonValue value(QLatin1StringView key) const
QJsonValue value(QStringView key) const
QJsonObject &operator=(QJsonObject &&other)
QJsonObject &operator=(const QJsonObject &other)
QJsonValueRef operator[](const QString &key)
QJsonValue operator[](const QString &key) const
QJsonValueRef operator[](QLatin1StringView key)
QJsonValueRef operator[](QStringView key)
QJsonValue operator[](QLatin1StringView key) const
QJsonValue operator[](QStringView key) const

静的パブリックメンバー

QJsonObject fromVariantHash(const QVariantHash &hash)
QJsonObject fromVariantMap(const QVariantMap &map)
bool operator!=(const QJsonObject &lhs, const QJsonObject &rhs)
bool operator==(const QJsonObject &lhs, const QJsonObject &rhs)

詳細な説明

JSON オブジェクトは、キーと値のペアのリストであり、キーは一意の文字列、値は `QJsonValue` で表されます。

QJsonObject は、QVariantMap との間で相互に変換することができます。size()、insert()、remove() を使用して、その (キー、値) ペアの数を照会したり、標準の C++ イテレータパターンを使用してその内容を反復処理したりすることができます。

QJsonObject は暗黙的に共有されるクラスであり、変更が加えられていない限り、作成元となったドキュメントとデータを共有します。

QJsonDocument を使用することで、このオブジェクトをテキストベースの JSON と相互に変換することができます。

「Qt における JSON サポート」および「ゲームの保存と読み込み」も参照してください 。

メンバ型のドキュメント

QJsonObject::ConstIterator

QJsonObject::const_iterator の Qt スタイルの同義語。

QJsonObject::Iterator

QJsonObject::iterator の Qt スタイルの同義語。

[since 6.10] QJsonObject::const_key_value_iterator

QJsonObject::const_key_value_iterator の typedef は、QJsonObject 用の STL スタイルのイテレータを提供します。

QJsonObject::const_key_value_iterator は、本質的にはQJsonObject::const_iterator と同じですが、operator*() が値ではなくキー/値のペアを返す点が異なります。

このtypedefはQt 6.10で導入されました。

QKeyValueIteratorも参照してください 。

QJsonObject::key_type

QString の typedef。STL との互換性を確保するために用意されています。

[since 6.10] QJsonObject::key_value_iterator

QJsonObject::key_value_iterator の typedef は、QJsonObject 用の STL スタイルのイテレータを提供します。

QJsonObject::key_value_iterator は、本質的にはQJsonObject::iterator と同じですが、operator*() が値ではなくキー/値のペアを返す点が異なります。

このtypedefはQt 6.10で導入されました。

QKeyValueIteratorも参照してください 。

QJsonObject::mapped_type

QJsonValue の typedef。STL との互換性を確保するために用意されています。

QJsonObject::size_type

qsizetype の typedef。STL との互換性のために提供されています。

メンバ関数のドキュメント

QJsonObject::QJsonObject()

空のJSONオブジェクトを作成します。

isEmpty()も参照してください 。

QJsonObject::QJsonObject(std::initializer_list<std::pair<QString, QJsonValue>> args)

args の初期化リストから初期化されたQJsonObjectインスタンスを構築します。例:

QJsonObject object
{
    {"property1", 1},
    {"property2", 2}
};

[noexcept] QJsonObject::QJsonObject(const QJsonObject &other)

other のコピーを作成します。

QJsonObject は暗黙的に共有されているため、オブジェクトが変更されない限り、このコピーは浅いコピーとなります。

[noexcept] QJsonObject::QJsonObject(QJsonObject &&other)

other から QJsonObject をムーブコンストラクトで生成します。

[noexcept] QJsonObject::~QJsonObject()

そのオブジェクトを破棄します。

[since 6.10] auto QJsonObject::asKeyValueRange() &&

[since 6.10] auto QJsonObject::asKeyValueRange() &

[since 6.10] auto QJsonObject::asKeyValueRange() const &&

[since 6.10] auto QJsonObject::asKeyValueRange() const &

このオブジェクトをキー/値のペアとして反復処理できる範囲オブジェクトを返します。たとえば、この範囲オブジェクトは、構造化バインディング宣言と組み合わせて、範囲ベースの for ループで使用できます:

QJsonObject obj{
    {"something", "is"},
    {"in", "this"},
    {"object", 42},
};

for(auto [key,value]: obj.asKeyValueRange()) {
    qDebug() << key << "->" << value;
   if(key== "object")
        value= "!";// このキーのオブジェクトを変更する
}
qDebug() << obj["object"]; // QJsonValue(string, "!")

なお、この方法で得られる値は、オブジェクト内の値への参照であることに注意してください。具体的には、この値を変更すると、オブジェクト自体が変更されます。

rvalue(例えば、範囲指定の for ループの初期化子で作成された一時オブジェクトなど)に対してこのメソッドを呼び出すと、そのオブジェクトはこの範囲内でキャプチャされます。

これらの関数は Qt 6.10 で導入されました。

QKeyValueIteratorも参照してください 。

QJsonObject::iterator QJsonObject::begin()

オブジェクトの最初の項目を指すSTL形式のイテレータを返します。

constBegin() およびend()も参照してください 。

QJsonObject::const_iterator QJsonObject::begin() const

これはオーバーロードされた関数です。

[since 6.12] QJsonObject::const_iterator QJsonObject::cbegin() const

オブジェクトの最初の項目を指す、STL スタイルのconstイテレータを返します。

この関数は Qt 6.12 で導入されました。

begin() およびcend()も参照してください 。

[since 6.12] QJsonObject::const_iterator QJsonObject::cend() const

オブジェクトの最後の項目の直後に位置する仮想の項目を指す、STL スタイルのconstイテレータを返します。

この関数は Qt 6.12 で導入されました。

cbegin() およびend()も参照してください 。

QJsonObject::const_iterator QJsonObject::constBegin() const

オブジェクトの最初の要素を指す、STL スタイルのconstイテレータを返します。

begin() およびconstEnd()も参照してください 。

QJsonObject::const_iterator QJsonObject::constEnd() const

オブジェクトの最後の項目の直後に位置する仮想の項目を指す、STL スタイルのconstイテレータを返します。

constBegin() およびend()も参照してください 。

QJsonObject::const_iterator QJsonObject::constFind(const QString &key) const

マップ内のキー「key 」を持つ項目を指す const イテレータを返します。

マップにキー `key` を持つ項目が含まれていない場合、この関数は `constEnd()` を返します。

QJsonObject::const_iterator QJsonObject::constFind(QLatin1StringView key) const

これはオーバーロードされた関数です。

QJsonObject::const_iterator QJsonObject::constFind(QStringView key) const

これはオーバーロードされた関数です。

[since 6.10] QJsonObject::const_key_value_iterator QJsonObject::constKeyValueBegin() const

オブジェクトの最初のエントリを指す、STL スタイルのconstイテレータを返します。

この関数は Qt 6.10 で導入されました。

keyValueBegin()も参照してください 。

[since 6.10] QJsonObject::const_key_value_iterator QJsonObject::constKeyValueEnd() const

オブジェクト内の最後のエントリの直後に位置する仮想エントリを指す、STL スタイルのconstイテレータを返します。

この関数は Qt 6.10 で導入されました。

constKeyValueBegin()も参照してください 。

bool QJsonObject::contains(const QString &key) const

オブジェクトにキー「key 」が含まれている場合、「true 」を返します。

insert()、remove()、およびtake()も参照してください 。

bool QJsonObject::contains(QLatin1StringView key) const

これはオーバーロードされた関数です。

bool QJsonObject::contains(QStringView key) const

これはオーバーロードされた関数です。

qsizetype QJsonObject::count() const

size() と同様です。

bool QJsonObject::empty() const

この関数は、STLとの互換性を確保するために提供されています。これはisEmpty()と同等であり、オブジェクトが空の場合はtrue を返し、それ以外の場合はfalse を返します。

QJsonObject::iterator QJsonObject::end()

オブジェクトの最後の項目の後に存在する架空の項目を指す、STL スタイルのイテレータを返します。

begin() およびconstEnd()も参照してください 。

QJsonObject::const_iterator QJsonObject::end() const

これはオーバーロードされた関数です。

QJsonObject::iterator QJsonObject::erase(QJsonObject::iterator it)

イテレータ `it ` が指す (キー, 値) のペアをマップから削除し、マップ内の次の項目へのイテレータを返します。

remove()も参照してください 。

QJsonObject::iterator QJsonObject::find(const QString &key)

マップ内のキーkey を持つ項目を指すイテレータを返します。

マップにキー `key` を持つ項目が含まれていない場合、この関数は `end()` を返します。

QJsonObject::iterator QJsonObject::find(QLatin1StringView key)

これはオーバーロードされた関数です。

QJsonObject::iterator QJsonObject::find(QStringView key)

これはオーバーロードされた関数です。

QJsonObject::const_iterator QJsonObject::find(QLatin1StringView key) const

これはオーバーロードされた関数です。

QJsonObject::const_iterator QJsonObject::find(QStringView key) const

これはオーバーロードされた関数です。

QJsonObject::const_iterator QJsonObject::find(const QString &key) const

これはオーバーロードされた関数です。

[static] QJsonObject QJsonObject::fromVariantHash(const QVariantHash &hash)

バリアントハッシュ `hash ` を `QJsonObject` に変換します。

hash 内のキーはJSONオブジェクトのキーとして使用され、QVariant の値はJSONの値に変換されます。

注: QVariant からの変換は 、完全にロスレスというわけではありません。詳細については、QJsonValue::fromVariant() のドキュメントを参照してください。

関連項目: fromVariantMap()、toVariantHash()、およびQJsonValue::fromVariant()も参照してください 。

[static] QJsonObject QJsonObject::fromVariantMap(const QVariantMap &map)

バリアントマップ `map ` を `QJsonObject` に変換します。

map 内のキーはJSONオブジェクトのキーとして使用され、QVariant の値はJSONの値に変換されます。

注: QVariant からの変換は 、完全にロスレスではありません。詳細については、QJsonValue::fromVariant() のドキュメントを参照してください。

関連項目: fromVariantHash()、toVariantMap()、およびQJsonValue::fromVariant()。

QJsonObject::iterator QJsonObject::insert(const QString &key, const QJsonValue &value)

キー「key 」、値「value 」を持つ新しい項目を挿入します。

キーkey を持つ項目がすでに存在する場合、その項目の値はvalue に置き換えられます。

挿入された項目を指すイテレータを返します。

値が `QJsonValue::Undefined` の場合、そのキーはオブジェクトから削除されます。その場合、返されるイテレータは `end` を指すようになります。

関連項目: remove(),take(),QJsonObject::iterator 、およびend()。

QJsonObject::iterator QJsonObject::insert(QLatin1StringView key, const QJsonValue &value)

これはオーバーロードされた関数です。

QJsonObject::iterator QJsonObject::insert(QStringView key, const QJsonValue &value)

これはオーバーロードされた関数です。

bool QJsonObject::isEmpty() const

オブジェクトが空の場合、true を返します。これは、size() == 0 と同じです。

size()も参照してください 。

[since 6.10] QJsonObject::key_value_iterator QJsonObject::keyValueBegin()

オブジェクトの最初のエントリを指すSTL形式のイテレータを返します。

この関数は Qt 6.10 で導入されました。

keyValueEnd()も参照してください 。

[since 6.10] QJsonObject::const_key_value_iterator QJsonObject::keyValueBegin() const

オブジェクトの最初のエントリを指す、STL スタイルのconstイテレータを返します。

この関数は Qt 6.10 で導入されました。

keyValueEnd()も参照してください 。

[since 6.10] QJsonObject::key_value_iterator QJsonObject::keyValueEnd()

オブジェクトの最後のエントリの直後に位置する仮想のエントリを指す、STL スタイルのイテレータを返します。

この関数は Qt 6.10 で導入されました。

keyValueBegin()も参照してください 。

[since 6.10] QJsonObject::const_key_value_iterator QJsonObject::keyValueEnd() const

オブジェクトの最後のエントリの直後に位置する仮想エントリを指す、STL スタイルのconstイテレータを返します。

この関数は Qt 6.10 で導入されました。

keyValueBegin()も参照してください 。

QStringList QJsonObject::keys() const

このオブジェクトに含まれるすべてのキーのリストを返します。

リストはアルファベット順に並べ替えられています。

qsizetype QJsonObject::length() const

size() と同じです。

void QJsonObject::remove(const QString &key)

オブジェクトからkey を削除します。

insert() およびtake()も参照してください 。

void QJsonObject::remove(QLatin1StringView key)

これはオーバーロードされた関数です。

void QJsonObject::remove(QStringView key)

これはオーバーロードされた関数です。

qsizetype QJsonObject::size() const

オブジェクトに格納されている (キー, 値) のペアの数を返します。

[noexcept] void QJsonObject::swap(QJsonObject &other)

このオブジェクトをother と入れ替えます。この操作は非常に高速で、失敗することはありません。

QJsonValue QJsonObject::take(const QString &key)

オブジェクトからkey を削除します。

key が参照する値を含むQJsonValue を返します。key がオブジェクトに含まれていなかった場合、返されるQJsonValue はQJsonValue::Undefined となります。

insert()、remove()、およびQJsonValueも参照してください 。

QJsonValue QJsonObject::take(QLatin1StringView key)

これはオーバーロードされた関数です。

QJsonValue QJsonObject::take(QStringView key)

これはオーバーロードされた関数です。

QVariantHash QJsonObject::toVariantHash() const

このオブジェクトをQVariantHash に変換します。

作成されたハッシュを返します。

toVariantMap()も参照してください 。

QVariantMap QJsonObject::toVariantMap() const

このオブジェクトをQVariantMap に変換します。

作成されたマップを返します。

toVariantHash()も参照してください 。

QJsonValue QJsonObject::value(const QString &key) const

キー `key` の値を表す `QJsonValue ` を返します。

キーが存在しない場合、返されるQJsonValue はQJsonValue::Undefined となります。

QJsonValue およびQJsonValue::isUndefined()も参照してください 。

QJsonValue QJsonObject::value(QLatin1StringView key) const

これはオーバーロードされた関数です。

QJsonValue QJsonObject::value(QStringView key) const

これはオーバーロードされた関数です。

[noexcept] QJsonObject &QJsonObject::operator=(QJsonObject &&other)

other をこのオブジェクトに割り当てます。

[noexcept] QJsonObject &QJsonObject::operator=(const QJsonObject &other)

このオブジェクトにother を割り当てます。

QJsonValueRef QJsonObject::operator[](const QString &key)

key の値への参照を返します。オブジェクト内にキーkey を持つ値が存在しない場合、QJsonValue::Null の値を持つ値が作成され、それが返されます。

戻り値の型は `QJsonValueRef` であり、これは `QJsonArray ` および `QJsonObject` のヘルパークラスです。`QJsonValueRef` 型のオブジェクトを取得した場合、それを `QJsonValue` への参照であるかのように使用できます。これに代入を行うと、その代入は、参照を取得した `QJsonArray ` または `QJsonObject ` 内の要素に対して適用されます。

value()も参照してください 。

QJsonValue QJsonObject::operator[](const QString &key) const

キー `key` の値を表す `QJsonValue ` を返します。

これは `value()` と同じ動作をします。

キーが存在しない場合、返されるQJsonValue はQJsonValue::Undefined となります。

value()、QJsonValue 、およびQJsonValue::isUndefined()も参照してください 。

QJsonValueRef QJsonObject::operator[](QLatin1StringView key)

これはオーバーロードされた関数です。

QJsonValueRef QJsonObject::operator[](QStringView key)

これはオーバーロードされた関数です。

QJsonValue QJsonObject::operator[](QLatin1StringView key) const

これはオーバーロードされた関数です。

QJsonValue QJsonObject::operator[](QStringView key) const

これはオーバーロードされた関数です。

関連する非メンバー

[noexcept] bool operator!=(const QJsonObject &lhs, const QJsonObject &rhs)

lhs オブジェクトがrhs と等しくない場合はtrue を返し、それ以外の場合はfalse を返します。

[noexcept] bool operator==(const QJsonObject &lhs, const QJsonObject &rhs)

lhs オブジェクトがrhs と等しい場合はtrue を返し、それ以外の場合はfalse を返します。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.