QJsonValue Class
QJsonValueクラスは、JSONの値をカプセル化します。詳細...
Header: | #include <QJsonValue> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- 継承されたメンバを含む、すべてのメンバの一覧
- QJsonValue は、Qt の JSON サポートと 暗黙的に共有されるクラスの一部です。
このクラスは等価比較可能です。
このクラスは、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::Bool
- doubleQJsonValue::Double
- 文字列QJsonValue::String
- 配列QJsonValue::Array
- オブジェクトQJsonValue::Object
- ヌルQJsonValue::Null
値は、上記のデータ型のいずれかを表すことができます。さらに、QJsonValueは未定義の値を表す特別なフラグを持っています。これはisUndefined() で問い合わせることができます。
値の型は、type() や、isBool(),isString() などのアクセサで問い合わせることができます。同様に、toBool ()、toString ()などを使って、値を格納されている型に変換することができる。
値は内部的に厳密に型付けされ、QVariant に反して、暗黙の型変換は試みない。これは、値に格納されていない型に変換すると、デフォルトで構築された戻り値が返されることを意味します。
QJsonValueRef
QJsonValueRef は、 と のヘルパー・クラスです。 型のオブジェクトを取得すると、それをQJsonValueへの参照であるかのように使用できます。これに代入すると、その代入は、参照を取得した または の要素に適用されます。QJsonArray QJsonObject QJsonValueRef QJsonArray QJsonObject
以下のメソッドはQJsonValueRef を返します:
- QJsonArray::operator[](qsizetype i)
- QJsonObject::operator[](constQString & key) const
QtのJSONサポートと ゲームの保存と読み込みも参照してください 。
メンバ型の説明
enum QJsonValue::Type
この列挙型は、JSON値の型を記述します。
定数 | 値 | 説明 |
---|---|---|
QJsonValue::Null | 0x0 | Null 値 |
QJsonValue::Bool | 0x1 | ブール値。ブール値に変換するにはtoBool() を使用します。 |
QJsonValue::Double | 0x2 | 数値。double 型に変換するにはtoDouble() を、qint64 型に変換するにはtoInteger() を使用します。 |
QJsonValue::String | 0x3 | 文字列。QString に変換するにはtoString() を使用します。 |
QJsonValue::Array | 0x4 | 配列。QJsonArray に変換するにはtoArray() を使用します。 |
QJsonValue::Object | 0x5 | オブジェクト。QJsonObject に変換するにはtoObject() を使用します。 |
QJsonValue::Undefined | 0x80 | 値は未定義です。これは通常、配列の範囲外の値やオブジェクトの存在しないキーを読み込もうとしたときに、エラー状態として返されます。 |
メンバ関数ドキュメント
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)
variant をQJsonValue に変換して返します。
変換はQVariant 型を以下のように変換する:
変換元タイプ | 変換先の型 |
---|---|
QJsonValue::Null | |
QJsonValue::Bool | |
QJsonValue::Double | |
QJsonValue::String | |
QJsonValue::Array | |
QJsonValue::Object | |
QJsonValue::String.変換は、URLのパースにおいて最大限の互換性を確保するために、フラグQUrl::FullyEncoded でQUrl::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() による変換は、いつでも変更される可能性があることに注意。QVariant とQJsonValue の両方は、将来、より多くの型をサポートするように拡張される可能性があり、その結果、この関数が変換を実行する方法が変更されることになります。
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 型は以下のように変換されます:
定数 | 説明 |
---|---|
Null | QMetaType::Nullptr |
Bool | QMetaType::Bool |
Double | QMetaType::Double またはQMetaType::LongLong |
String | QString |
Array | QVariantList |
Object | QVariantMap |
Undefined | QVariant() |
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() が偽の場合、返されるQJsonValue はQJsonValue::Undefined となります。
QJsonValue 、QJsonValue::isUndefined()、QJsonObjectも参照してください 。
const QJsonValue QJsonValue::operator[](qsizetype i) const
インデックスi の値を表すQJsonValue を返す。
toArray().at(i) を呼び出すのと同じ。
i が範囲外の場合、またはisArray() が偽の場合、返されるQJsonValue はQJsonValue::Undefined となる。
QJsonValue 、QJsonValue::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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。