QJsonDocument Class
QJsonDocument クラスは、JSON ドキュメントを読み書きする方法を提供します。詳細...
Header: | #include <QJsonDocument> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 継承メンバを含む全メンバ一覧
- QJsonDocument は、Qt の JSON サポートと 暗黙的に共有されるクラスの一部です。
このクラスは等価比較可能です。
注意:このクラスの関数はすべてリエントラントです。
パブリック型
enum | JsonFormat { Indented, Compact } |
パブリック関数
QJsonDocument() | |
QJsonDocument(const QJsonArray &array) | |
QJsonDocument(const QJsonObject &object) | |
QJsonDocument(const QJsonDocument &other) | |
QJsonDocument(QJsonDocument &&other) | |
~QJsonDocument() | |
QJsonArray | array() const |
bool | isArray() const |
bool | isEmpty() const |
bool | isNull() const |
bool | isObject() const |
QJsonObject | object() const |
void | setArray(const QJsonArray &array) |
void | setObject(const QJsonObject &object) |
void | swap(QJsonDocument &other) |
QByteArray | toJson(QJsonDocument::JsonFormat format = Indented) const |
QVariant | toVariant() const |
QJsonDocument & | operator=(QJsonDocument &&other) |
QJsonDocument & | operator=(const QJsonDocument &other) |
const QJsonValue | operator[](const QString &key) const |
const QJsonValue | operator[](qsizetype i) const |
const QJsonValue | operator[](QLatin1StringView key) const |
const QJsonValue | operator[](QStringView key) const |
静的パブリック・メンバー
QJsonDocument | fromJson(const QByteArray &json, QJsonParseError *error = nullptr) |
QJsonDocument | fromVariant(const QVariant &variant) |
関連する非メンバー
bool | operator!=(const QJsonDocument &lhs, const QJsonDocument &rhs) |
bool | operator==(const QJsonDocument &lhs, const QJsonDocument &rhs) |
詳しい説明
QJsonDocument は、完全な JSON ドキュメントをラップするクラスで、UTF-8 でエンコードされたテキストベースの表現からこのドキュメントを読み込んだり、書き込んだりすることができます。
JSON ドキュメントは、QJsonDocument::fromJson() を使用して、テキストベースの表現から QJsonDocument に変換できます。toJson()はそれをテキストに戻します。パーサーは非常に高速で効率的であり、JSONをQtが使用するバイナリ表現に変換します。
パースされたドキュメントの有効性は、isNull() で問い合わせることができます。
isArray() やisObject() を使って、ドキュメントに配列やオブジェクトが含まれているかどうかを問い合わせることができます。ドキュメントに含まれる配列やオブジェクトは、array() やobject() を使って取得し、 読み込んだり操作したりすることができます。
Qt における JSON サポートおよびゲームの保存と読み込みも参照してください 。
メンバ型ドキュメント
enum QJsonDocument::JsonFormat
この値は、toJson() を使用してQJsonDocument に変換するときに生成される JSON バイト配列の形式を定義します。
定数 | 値 | 説明 |
---|---|---|
QJsonDocument::Indented | 0 | 人間が読める出力を以下のように定義します:{ "Array": [ true, 999, "string" ], "Key": "Value", "null": null } |
QJsonDocument::Compact | 1 | コンパクトな出力を以下のように定義する:{"Array":[true,999,"string"],"Key":"Value","null":null} |
メンバー関数 ドキュメンテーション
QJsonDocument::QJsonDocument()
空で無効なドキュメントを構築する。
[explicit]
QJsonDocument::QJsonDocument(const QJsonArray &array)
array から QJsonDocument を構築する。
[explicit]
QJsonDocument::QJsonDocument(const QJsonObject &object)
object から QJsonDocument を作成します。
QJsonDocument::QJsonDocument(const QJsonDocument &other)
other ドキュメントのコピーを作成します。
[noexcept]
QJsonDocument::QJsonDocument(QJsonDocument &&other)
Move -other から QJsonDocument を構築します。
[noexcept]
QJsonDocument::~QJsonDocument()
ドキュメントを削除します。
fromRawData を持つバイナリデータセットは解放されない。
QJsonArray QJsonDocument::array() const
ドキュメントに含まれるQJsonArray を返します。
ドキュメントにオブジェクトが含まれている場合は、空の配列を返します。
isArray()、object() およびsetArray()も参照 。
[static]
QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error = nullptr)
json を UTF-8 でエンコードされた JSON ドキュメントとして解析し、そこからQJsonDocument を作成します。
解析に成功した場合は、有効な (non-null)QJsonDocument を返します。失敗した場合、返されるドキュメントはnullとなり、オプションの変数error にエラーの詳細が格納されます。
toJson()、QJsonParseError 、isNull()も参照 。
[static]
QJsonDocument QJsonDocument::fromVariant(const QVariant &variant)
QVariant variant からQJsonDocument を作成する。
variant にQVariantMap 、QVariantHash 、QVariantList 、QStringList 以外の型が含まれている場合、返されるドキュメントは無効です。
toVariant()も参照 。
bool QJsonDocument::isArray() const
ドキュメントに配列が含まれている場合はtrue
を返します。
bool QJsonDocument::isEmpty() const
ドキュメントにデータが含まれていない場合はtrue
を返します。
bool QJsonDocument::isNull() const
このドキュメントが NULL の場合はtrue
を返します。
NULL ドキュメントとは、デフォルトのコンストラクタで作成されたドキュメントのことです。
UTF-8でエンコードされたテキストやバイナリフォーマットから作成されたドキュメントは、パース時にバリデーションされます。バリデーションに失敗すると、返されるドキュメントも NULL になります。
bool QJsonDocument::isObject() const
ドキュメントにオブジェクトが含まれている場合はtrue
を返します。
QJsonObject QJsonDocument::object() const
ドキュメントに含まれるQJsonObject を返します。
ドキュメントに配列が含まれている場合は、空のオブジェクトを返します。
isObject()、array()、setObject() も参照 。
void QJsonDocument::setArray(const QJsonArray &array)
array をこのドキュメントのメイン・オブジェクトに設定します。
void QJsonDocument::setObject(const QJsonObject &object)
object をこのドキュメントのメイン・オブジェクトに設定する。
[noexcept]
void QJsonDocument::swap(QJsonDocument &other)
文書other をこの文書と入れ替えます。この操作は非常に高速で、失敗することはありません。
QByteArray QJsonDocument::toJson(QJsonDocument::JsonFormat format = Indented) const
QJsonDocument を、提供されたformat の UTF-8 エンコードされた JSON ドキュメントに変換します。
fromJson() およびJsonFormatも参照 。
QVariant QJsonDocument::toVariant() const
Json ドキュメントを表すQVariant を返します。
返される variant は、ドキュメントがQJsonArray の場合はQVariantList となり、QJsonObject の場合はQVariantMap となります。
fromVariant() およびQJsonValue::toVariant()も参照して ください。
[noexcept]
QJsonDocument &QJsonDocument::operator=(QJsonDocument &&other)
Move- このドキュメントにother を割り当てます。
QJsonDocument &QJsonDocument::operator=(const QJsonDocument &other)
other ドキュメントをこのQJsonDocument に割り当てます。このオブジェクトへの参照を返します。
const QJsonValue QJsonDocument::operator[](const QString &key) const
キーkey の値を表すQJsonValue を返します。
object().value(key) を呼び出すのと等価。
キーが存在しない場合、またはisObject() が偽の場合、返されるQJsonValue はQJsonValue::Undefined となります。
QJsonValue 、QJsonValue::isUndefined()、QJsonObjectも参照 。
const QJsonValue QJsonDocument::operator[](qsizetype i) const
インデックスi の値を表すQJsonValue を返す。
array().at(i) を呼び出すのと同じ。
i が範囲外の場合、またはisArray() が偽の場合、返されるQJsonValue はQJsonValue::Undefined となる。
QJsonValue 、QJsonValue::isUndefined()、QJsonArrayも参照のこと 。
const QJsonValue QJsonDocument::operator[](QLatin1StringView key) const
これはオーバーロードされた関数である。
const QJsonValue QJsonDocument::operator[](QStringView key) const
これはオーバーロードされた関数です。
関連する非会員
[noexcept]
bool operator!=(const QJsonDocument &lhs, const QJsonDocument &rhs)
lhs ドキュメントがrhs ドキュメントと等しくない場合はtrue
を返し、そうでない場合はfalse
を返す。
[noexcept]
bool operator==(const QJsonDocument &lhs, const QJsonDocument &rhs)
lhs ドキュメントがrhs ドキュメントと等しい場合はtrue
を、そうでない場合はfalse
を返します。
©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。