QJsonValue Class

QJsonValueクラスは、JSONの値をカプセル化します。詳細...

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

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

このクラスは QJsonValueConstRef およびQJsonValueRef等価比較可能です。

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

パブリック型

enum Type { Null, Bool, Double, String, Array, …, Undefined }

パブリック関数

QJsonValue(QJsonValue::Type type = Null)
QJsonValue(QLatin1StringView s)
QJsonValue(bool b)
QJsonValue(const QJsonArray &a)
QJsonValue(const QJsonObject &o)
QJsonValue(const QString &s)
QJsonValue(const char *s)
QJsonValue(double v)
(since 6.3) QJsonValue(QJsonArray &&a)
(since 6.3) QJsonValue(QJsonObject &&o)
QJsonValue(int v)
QJsonValue(qint64 v)
QJsonValue(const QJsonValue &other)
QJsonValue(QJsonValue &&other)
~QJsonValue()
bool isArray() const
bool isBool() const
bool isDouble() const
bool isNull() const
bool isObject() const
bool isString() const
bool isUndefined() const
void swap(QJsonValue &other)
QJsonArray toArray(const QJsonArray &defaultValue) const
QJsonArray toArray() const
bool toBool(bool defaultValue = false) const
double toDouble(double defaultValue = 0) const
int toInt(int defaultValue = 0) const
(since 6.0) qint64 toInteger(qint64 defaultValue = 0) const
QJsonObject toObject(const QJsonObject &defaultValue) const
QJsonObject toObject() const
QString toString() const
QString toString(const QString &defaultValue) const
QVariant toVariant() const
QJsonValue::Type type() const
QJsonValue &operator=(QJsonValue &&other)
QJsonValue &operator=(const QJsonValue &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

静的パブリック・メンバー

QJsonValue fromVariant(const QVariant &variant)
bool operator!=(const QJsonValue &lhs, const QJsonValue &rhs)
bool operator==(const QJsonValue &lhs, const QJsonValue &rhs)

詳細説明

JSONの値は、6つの基本型のいずれかになります:

JSONは、構造化データを格納するためのフォーマットです。JSONには6つの基本データ型があります:

値は、上記のデータ型のいずれかを表すことができます。さらに、QJsonValueは未定義の値を表す特別なフラグを持っています。これはisUndefined() で問い合わせることができます。

値の型は、type() や、isBool(),isString() などのアクセサで問い合わせることができます。同様に、toBool ()、toString ()などを使って、値を格納されている型に変換することができる。

値は内部的に厳密に型付けされ、QVariant に反して、暗黙の型変換は試みない。これは、値に格納されていない型に変換すると、デフォルトで構築された戻り値が返されることを意味します。

QJsonValueRef

QJsonValueRef は、 と のヘルパー・クラスです。 型のオブジェクトを取得すると、それをQJsonValueへの参照であるかのように使用できます。これに代入すると、その代入は、参照を取得した または の要素に適用されます。QJsonArray QJsonObject QJsonValueRef QJsonArray QJsonObject

以下のメソッドはQJsonValueRef を返します:

QtのJSONサポートと ゲームの保存と読み込みも参照してください

メンバ型ドキュメント

enum QJsonValue::Type

この列挙型は、JSON値の型を記述します。

定数説明
QJsonValue::Null0x0Null 値
QJsonValue::Bool0x1ブール値。ブール値に変換するにはtoBool() を使用します。
QJsonValue::Double0x2数値。double 型に変換するにはtoDouble() を、qint64 型に変換するにはtoInteger() を使用します。
QJsonValue::String0x3文字列。QString に変換するにはtoString() を使用します。
QJsonValue::Array0x4配列。QJsonArray に変換するにはtoArray() を使用します。
QJsonValue::Object0x5オブジェクト。QJsonObject に変換するにはtoObject() を使用します。
QJsonValue::Undefined0x80値は未定義です。これは通常、配列の範囲外の値やオブジェクトの存在しないキーを読み込もうとしたときに、エラー状態として返されます。

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

QJsonValue::QJsonValue(QJsonValue::Type type = Null)

type 型の QJsonValue を作成します。

デフォルトはNull値です。

QJsonValue::QJsonValue(QLatin1StringView s)

String 型の値を作成し、Latin-1 文字列をs で表示します。

QJsonValue::QJsonValue(bool b)

b

QJsonValue::QJsonValue(const QJsonArray &a)

配列型の値を作成し、その値はa である。

QJsonValue::QJsonValue(const QJsonObject &o)

Object 型の値を作成し、値はo とする。

QJsonValue::QJsonValue(const QString &s)

String 型の値を作成し、値はs とする。

QJsonValue::QJsonValue(const char *s)

入力がUTF-8エンコーディングであると仮定して、値s を持つString型の値を作成する。

アプリケーションのコンパイル時にQT_NO_CAST_FROM_ASCII を定義することで、このコンストラクタを無効にすることができます。

QJsonValue::QJsonValue(double v)

Double 型の値を作成し、値はv とする。

[noexcept, since 6.3] QJsonValue::QJsonValue(QJsonArray &&a)

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

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

[noexcept, since 6.3] QJsonValue::QJsonValue(QJsonObject &&o)

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

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

QJsonValue::QJsonValue(int v)

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

v を持つ Double 型の値を作成します。

QJsonValue::QJsonValue(qint64 v)

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

v を持つ Double 型の値を作成します。注意: IEEE 754倍精度データの整数限界は2^53(-9007199254740992から+9007199254740992)です。この範囲外の値を渡すと、精度が落ちることが予想されます。

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

other のコピーを作成する。

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

Move-construct QJsonValue fromother.

[noexcept] QJsonValue::~QJsonValue()

価値を破壊する。

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

variantQJsonValue に変換して返す。

変換はQVariant 型を以下のように変換する:

変換元タイプ変換先タイプ
QJsonValue::Null
QJsonValue::Bool
QJsonValue::Double
QJsonValue::String
QJsonValue::Array
QJsonValue::Object
QJsonValue::String.変換は、URLのパースにおいて最大限の互換性を確保するために、フラグQUrl::FullyEncodedQUrl::toString() を使用します。
QJsonValue::String.Qt 5.11以降、結果の文字列は中括弧を含みません。
QCborValue::toJsonValue() が返すどちらの型であっても.
QJsonValue::Array.変換の制限についてはQCborValue::toJsonValue() を参照してください。
QJsonValue::Map.変換の制限とマップ・キーの "文字列化 "についてはQCborValue::toJsonValue()を参照。
情報の損失と他の型

QVariant は、JSONで表現可能な以上の情報を運ぶことができます。 が上記の型でない場合、変換は保証されず、UUID のように Qt の将来のバージョンで変更される可能性があります。コードでは、上記以外の型を使用しないように努めてください。QVariant

QVariant::isNull() が真を返した場合、QVariant が持つ型に関係なく、NULLQJsonValue が返されるか、リストやオブジェクトに挿入されます。Qt 6.0 でQVariant::isNull() に影響した動作の変更は、この関数にも影響します。

無限大または NaN である浮動小数点値は、NULL JSON 値に変換されます。Qt 6.0 以降、QJsonValue は、任意の 64 ビット符号付き整数の完全な精度を失うことなく格納できますが、以前のバージョンでは ±2^53 の範囲外の値は精度を失う可能性があります。2^63以上の符号なし64ビット値は精度を失うか、負の値にエイリアスされるので、QMetaType::ULongLong

上記に挙げられていないその他の型については、通常はQVariant::toString ()を呼び出すことで、文字列への変換が試みられる。変換に失敗した場合、値はNULLのJSON値に置き換えられる。また、QVariant::toString ()は、大半の型に対して損失が大きいことに注意。たとえば、渡されたQVariant が生のバイト配列データを表している場合、Base64(または他の可逆エンコーディング)に事前にエンコードすることを推奨します。そうでない場合は、QString::fromUtf8 ()を使用した非可逆変換が使用されます。

QVariant::toString() による変換は、いつでも変更される可能性があることに注意。QVariantQJsonValue の両方は、将来、より多くの型をサポートするように拡張される可能性があり、その結果、この関数が変換を実行する方法が変更されることになります。

toVariant() およびQCborValue::fromVariant()も参照の こと。

bool QJsonValue::isArray() const

値が配列を含む場合はtrue を返す。

toArray()も参照

bool QJsonValue::isBool() const

値が真偽値を含む場合はtrue を返す。

toBool()も参照

bool QJsonValue::isDouble() const

値に double が含まれる場合はtrue を返す。

toDouble()も参照

bool QJsonValue::isNull() const

値が null の場合はtrue を返す。

bool QJsonValue::isObject() const

値がオブジェクトを含む場合はtrue を返す。

toObject()も参照

bool QJsonValue::isString() const

値が文字列を含む場合はtrue を返す。

toString()も参照

bool QJsonValue::isUndefined() const

値が未定義の場合はtrue を返す。これは、QJsonObject の存在しないキーにアクセスした場合など、特定のエラーケースで発生する可能性があります。

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

この値をother と交換する。この操作は非常に高速で、失敗することはない。

QJsonArray QJsonValue::toArray(const QJsonArray &defaultValue) const

値を配列に変換して返す。

type() が Array でない場合は、defaultValue が返される。

QJsonArray QJsonValue::toArray() const

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

値を配列に変換して返す。

type() が Array でない場合は、QJsonArray() が返される。

bool QJsonValue::toBool(bool defaultValue = false) const

値をブールに変換して返す。

type() が bool でない場合、defaultValue が返される。

double QJsonValue::toDouble(double defaultValue = 0) const

値を double に変換して返す。

type() が Double でない場合は、defaultValue が返される。

int QJsonValue::toInt(int defaultValue = 0) const

値を int に変換して返します。

type() が Double でない場合、または値が整数でない場合は、defaultValue が返される。

[since 6.0] qint64 QJsonValue::toInteger(qint64 defaultValue = 0) const

値を整数に変換して返します。

type() が Double でない場合、または値が qint64 として表現可能な整数でない場合は、defaultValue が返されます。

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

QJsonObject QJsonValue::toObject(const QJsonObject &defaultValue) const

値をオブジェクトに変換して返す。

type() が Object でない場合は、defaultValue が返される。

QJsonObject QJsonValue::toObject() const

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

値をオブジェクトに変換して返します。

type() が Object でない場合は、QJsonObject() が返される。

QString QJsonValue::toString() const

値をQString に変換して返す。

type() が String でない場合は、NULL のQString が返される。

QString::isNull()も参照

QString QJsonValue::toString(const QString &defaultValue) const

値をQString に変換して返す。

type() が String でない場合、defaultValue が返される。

QVariant QJsonValue::toVariant() const

値をQVariant() に変換する。

QJsonValue 型は以下のように変換されます:

定数説明
NullQMetaType::Nullptr
BoolQMetaType::Bool
DoubleQMetaType::Double またはQMetaType::LongLong
StringQString
ArrayQVariantList
ObjectQVariantMap
UndefinedQVariant()

fromVariant()も参照

QJsonValue::Type QJsonValue::type() const

値の型を返します。

QJsonValue::Typeも参照

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

Move-この値にother

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

other に格納されている値をこのオブジェクトに割り当てます。

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

key キーの値を表すQJsonValue を返す。

toObject().value(key)を呼び出すのと同じ。

キーが存在しない場合、またはisObject() が偽の場合、返されるQJsonValueQJsonValue::Undefined となります。

QJsonValueQJsonValue::isUndefined()、QJsonObjectも参照

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

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

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

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

QJsonValueQJsonValue::isUndefined()、QJsonArrayも参照

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

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

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

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

関連する非会員

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

lhs の値がrhs の値と等しくなければtrue を、そうでなければfalse を返す。

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

lhs の値がrhs の値と等しければtrue を、そうでなければfalse を返す。

© 2025 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.