QJsonValue Class
QJsonValue 클래스는 JSON 형식의 값을 캡슐화합니다. 더 보기...
| 헤더: | #include <QJsonValue> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
- 상속된 멤버를 포함한 모든 멤버 목록
- QJsonValue는 Qt의 JSON 지원 및 암시적 공유 클래스의 일부입니다.
참고: 이 클래스의 모든 함수는 재진입 가능합니다.
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은 구조화된 데이터를 저장하기 위한 형식입니다. JSON에는 6가지 기본 데이터 유형이 있습니다:
- bool QJsonValue::Bool
- double QJsonValue::Double
- string QJsonValue::String
- array QJsonValue::Array
- object QJsonValue::Object
- null QJsonValue::Null
값은 위의 데이터 유형 중 어느 것이든 나타낼 수 있습니다. 또한, QJsonValue에는 정의되지 않은 값을 나타내는 하나의 특수 플래그가 있습니다. 이는 ` isUndefined()`를 통해 조회할 수 있습니다.
값의 유형은 ` type()` 또는 ` isBool()`, ` isString()` 등과 같은 액세서를 통해 조회할 수 있습니다. 마찬가지로, ` toBool()`, ` toString()` 등을 사용하여 값을 그 안에 저장된 유형으로 변환할 수 있습니다.
값은 내부적으로 엄격한 타입을 가지며, QVariant 와 달리 암시적 타입 변환을 시도하지 않습니다. 이는 값에 저장되지 않은 타입으로 변환할 경우, 기본 생성된 반환 값이 반환됨을 의미합니다.
QJsonValueRef
QJsonValueRef 는 QJsonArray 및 QJsonObject 을 위한 헬퍼 클래스입니다. QJsonValueRef 유형의 객체를 얻었을 때, 이를 마치 QJsonValue에 대한 참조인 것처럼 사용할 수 있습니다. 이 객체에 값을 할당하면, 해당 할당은 참조를 얻은 QJsonArray 또는 QJsonObject 내의 요소에 적용됩니다.
다음 메서드들은 ` QJsonValueRef`을 반환합니다:
- QJsonArray::operator[](qsizetype i)
- QJsonObject::operator[](const QString & key) const
Qt의 JSON 지원 및 게임 저장 및 불러오기도참조하십시오 .
멤버 유형 문서
[alias, since 6.9] QJsonValue::JsonFormat
QJsonDocument::JsonFormat 와 동일합니다.
이 typedef는 Qt 6.9에서 도입되었습니다.
enum QJsonValue::Type
이 열거형은 JSON 값의 유형을 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QJsonValue::Null | 0x0 | Null 값 |
QJsonValue::Bool | 0x1 | 부울 값. toBool()을 사용하여 bool로 변환하십시오. |
QJsonValue::Double | 0x2 | 숫자 값. ` toDouble()`를 사용하여 double로 변환하거나, ` toInteger()`를 사용하여 qint64로 변환하십시오. |
QJsonValue::String | 0x3 | 문자열. toString()을 사용하여 QString 로 변환하십시오. |
QJsonValue::Array | 0x4 | 배열입니다. toArray()을 사용하여 QJsonArray 로 변환하십시오. |
QJsonValue::Object | 0x5 | 객체입니다. ` toObject()`를 사용하여 ` QJsonObject`로 변환하십시오. |
QJsonValue::Undefined | 0x80 | 값이 정의되지 않았습니다. 이는 일반적으로 배열에서 범위를 벗어난 값을 읽으려고 하거나 객체에서 존재하지 않는 키를 읽으려고 할 때 오류 상태로 반환됩니다. |
멤버 함수 문서
QJsonValue::QJsonValue(QJsonValue::Type type = Null)
type 유형의 QJsonValue를 생성합니다.
기본값은 Null 값을 생성하는 것입니다.
QJsonValue::QJsonValue(QLatin1StringView s)
s 를 통해 변환된 Latin-1 문자열을 가진 String 형식의 값을 생성합니다.
QJsonValue::QJsonValue(bool b)
b 인 Bool 형식의 값을 생성합니다.
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 가 반환되거나 목록 또는 객체에 삽입됩니다. QVariant::isNull()에 영향을 미치는 Qt 6.0의 동작 변경 사항이 이 함수에도 영향을 미친다는 점에 유의하십시오.
무한대 또는 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 유형은 다음과 같이 변환됩니다:
| 상수 | 설명 |
|---|---|
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)
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.