QJsonDocument Class

QJsonDocument クラスは、JSON ドキュメントを読み書きする方法を提供します。詳細...

Header: #include <QJsonDocument>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

このクラスは等価比較可能です。

注意:このクラスの関数はすべてリエントラントです。

パブリック型

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::Indented0人間が読める出力を以下のように定義します:
    {
        "Array": [
            true,
            999,
            "string"
        ],
        "Key": "Value",
        "null": null
    }
QJsonDocument::Compact1コンパクトな出力を以下のように定義する:
    {"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()、QJsonParseErrorisNull()も参照

[static] QJsonDocument QJsonDocument::fromVariant(const QVariant &variant)

QVariant variant からQJsonDocument を作成する。

variantQVariantMapQVariantHashQVariantListQStringList 以外の型が含まれている場合、返されるドキュメントは無効です。

toVariant()も参照

bool QJsonDocument::isArray() const

ドキュメントに配列が含まれている場合はtrue を返します。

array() およびisObject() も参照

bool QJsonDocument::isEmpty() const

ドキュメントにデータが含まれていない場合はtrue を返します。

bool QJsonDocument::isNull() const

このドキュメントが NULL の場合はtrue を返します。

NULL ドキュメントとは、デフォルトのコンストラクタで作成されたドキュメントのことです。

UTF-8でエンコードされたテキストやバイナリフォーマットから作成されたドキュメントは、パース時にバリデーションされます。バリデーションに失敗すると、返されるドキュメントも NULL になります。

bool QJsonDocument::isObject() const

ドキュメントにオブジェクトが含まれている場合はtrue を返します。

object() およびisArray()も参照

QJsonObject QJsonDocument::object() const

ドキュメントに含まれるQJsonObject を返します。

ドキュメントに配列が含まれている場合は、空のオブジェクトを返します。

isObject()、array()、setObject() も参照

void QJsonDocument::setArray(const QJsonArray &array)

array をこのドキュメントのメイン・オブジェクトに設定します。

setObject() およびarray()参照。

void QJsonDocument::setObject(const QJsonObject &object)

object をこのドキュメントのメイン・オブジェクトに設定する。

setArray() および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() が偽の場合、返されるQJsonValueQJsonValue::Undefined となります。

QJsonValueQJsonValue::isUndefined()、QJsonObjectも参照

const QJsonValue QJsonDocument::operator[](qsizetype i) const

インデックスi の値を表すQJsonValue を返す。

array().at(i) を呼び出すのと同じ。

i が範囲外の場合、またはisArray() が偽の場合、返されるQJsonValueQJsonValue::Undefined となる。

QJsonValueQJsonValue::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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。