QJsonValue Class

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

Header: #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)

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

QJsonValue::QJsonValue(bool b)

Bool 型の値を作成します。値はb です。

QJsonValue::QJsonValue(const QJsonArray &a)

Array 型の値を作成します。値はa です。

QJsonValue::QJsonValue(const QJsonObject &o)

Object型の値を作成し、値はo

QJsonValue::QJsonValue(const QString &s)

s を持つ String 型の値を作成します。

QJsonValue::QJsonValue(const char *s)

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

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

QJsonValue::QJsonValue(double v)

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

[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これはオーバーロードされた関数です。注意:IEEE 754倍精度データの整数限界は2^53(-9007199254740992~+9007199254740992)です。この範囲外の値を渡すと、精度が落ちることが予想されます。

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

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

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

Move -other から QJsonValue を構築します。

[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:値を double に変換して返します。

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

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

int : 値を 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 でない場合は、NULLQString が返されます。

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 を返します。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。