このページでは

QJsonValue Class

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

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

注:このクラスのすべての関数は再入可能です。

QJsonValue の比較

カテゴリ比較可能な型
等価性QJsonValue
等価性QJsonValueConstRef およびQJsonValueRef 。

パブリック型

(since 6.9) JsonFormat
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
(since 6.9) QByteArray toJson(QJsonValue::JsonFormat format = JsonFormat::Indented) const
QJsonObject toObject(const QJsonObject &defaultValue) const
QJsonObject toObject() const
QString toString() const
QString toString(const QString &defaultValue) const
(since 6.10) QAnyStringView toStringView(QAnyStringView 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

静的パブリックメンバー

(since 6.9) QJsonValue fromJson(QByteArrayView json, QJsonParseError *error = nullptr)
QJsonValue fromVariant(const QVariant &variant)
bool operator!=(const QJsonValue &lhs, const QJsonValue &rhs)
bool operator==(const QJsonValue &lhs, const QJsonValue &rhs)

詳細な説明

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

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

値は、上記のいずれかのデータ型を表すことができます。さらに、QJsonValue には、未定義の値を表すための特別なフラグが 1 つあります。これは、isUndefined() を使用して照会できます。

値の型は、type() またはisBool()、isString() などのアクセサを使用して取得できます。同様に、toBool()、toString() などを使用して、値を内部に格納されている型に変換することができます。

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

QJsonValueRef

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

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

「Qt における JSON サポート」および「ゲームの保存と読み込み」も参照してください 。

メンバ型のドキュメント

[alias, since 6.9] QJsonValue::JsonFormat

QJsonDocument::JsonFormat と同じです。

この typedef は Qt 6.9 で導入されました。

enum QJsonValue::Type

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

定数値説明
QJsonValue::Null0x0Null 値
QJsonValue::Bool0x1ブール値。toBool() を使用して bool 型に変換します。
QJsonValue::Double0x2数値。toDouble() を使用して double 型に変換するか、toInteger() を使用して qint64 型に変換してください。
QJsonValue::String0x3文字列。toString() を使用してQString に変換します。
QJsonValue::Array0x4配列。toArray() を使用してQJsonArray に変換します。
QJsonValue::Object0x5オブジェクト。toObject() を使用して、QJsonObject 型に変換します。
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)

a という値を持つArray型のオブジェクトを作成します。

QJsonValue::QJsonValue(const QJsonObject &o)

o という値を持つObject型のオブジェクトを作成します。

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 の値を持つ Double 型の値を作成します。

これは内部的に 64 ビット整数として格納されるため、toInteger() を使用して取得する限り、完全な精度が保持されます。ただし、toDouble() を使用して値を取得すると、その値が ±2^53 の範囲内にある場合を除き、精度が失われます。

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

toInteger() およびtoDouble()も参照してください 。

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

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

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

other から QJsonValue をムーブコンストラクトで生成します。

[noexcept] QJsonValue::~QJsonValue()

価値を台無しにする。

[static, since 6.9] QJsonValue QJsonValue::fromJson(QByteArrayView json, QJsonParseError *error = nullptr)

json を UTF-8 エンコードされた JSON 値として解析し、そこからQJsonValue を作成します。

解析に成功した場合、有効なQJsonValue を返します。失敗した場合は、undefined が返され、オプションのerror 変数にエラーに関する詳細情報が格納されます。

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

QJsonParseError 、isUndefined()、およびtoJson()も参照してください 。

[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 で表現できる以上の情報を保持している場合があります。QVariant が上記の型のいずれでもない場合、変換は保証されず、UUID の場合と同様に、Qt の将来のバージョンで変更される可能性があります。コードでは、上記に挙げた型以外の型を使用しないように努めるべきです。

QVariant::isNull()がtrueを返す場合、QVariant が持つ型に関係なく、nullのQJsonValue が返されるか、リストまたはオブジェクトに挿入されます。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

値をbool型に変換して返します。

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 で導入されました。

[since 6.9] QByteArray QJsonValue::toJson(QJsonValue::JsonFormat format = JsonFormat::Indented) const

QJsonValue を、指定されたformat 内のUTF-8エンコードされたJSON値に変換します。

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

fromJson() およびJsonFormatも参照してください 。

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 が返されます。

toStringView()も参照してください 。

[since 6.10] QAnyStringView QJsonValue::toStringView(QAnyStringView defaultValue = {}) const

このQJsonValue に格納されている文字列値を返します(その値がstring 型の場合)。それ以外の場合は、defaultValue を返します。QJsonValue は文字列をUS-ASCII、UTF-8、またはUTF-16のいずれかで格納するため、返されるQAnyStringView はこれらのエンコーディングのいずれかになる可能性があります。

この関数はメモリを割り当てません。戻り値は、このオブジェクトに対して非constメンバー関数が次に呼び出されるまで有効です。このオブジェクトがスコープ外になった場合、戻り値は親のJSONオブジェクトまたは配列に対して非constメンバー関数が次に呼び出されるまで有効です。

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

toString()も参照してください 。

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)

other にこの値を代入します。

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

other に格納されている値を、このオブジェクトに代入します。

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

キー `key` の値を表す `QJsonValue ` を返します。

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

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

QJsonValue 、QJsonValue::isUndefined()、およびQJsonObjectも参照してください 。

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

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

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

i が範囲外の場合、またはisArray()がfalseの場合、返される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 を返します。

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