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 지원과 암시적으로 공유되는 클래스의 일부입니다.
이 클래스는 동등 비교가 가능합니다.
이 클래스는 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은 구조화된 데이터를 저장하는 형식입니다. 6가지 기본 데이터 유형이 있습니다:
- bool QJsonValue::Bool
- double QJsonValue::Double
- 문자열 QJsonValue::String
- 배열 QJsonValue::Array
- 객체 QJsonValue::Object
- null QJsonValue::Null
값은 위의 모든 데이터 유형을 나타낼 수 있습니다. 또한 QJsonValue에는 정의되지 않은 값을 나타내는 특수 플래그가 하나 있습니다. 이 플래그는 isUndefined()로 쿼리할 수 있습니다.
값의 유형은 type() 또는 isBool(), isString() 등과 같은 접근자를 사용하여 쿼리할 수 있습니다. 마찬가지로 값은 toBool(), toString() 등을 사용하여 저장된 유형으로 변환할 수 있습니다.
값은 내부적으로 엄격하게 유형화되며 QVariant 과는 달리 암시적 유형 변환을 시도하지 않습니다. 이는 값에 저장되지 않은 유형으로 변환하면 기본적으로 구성된 반환 값이 반환된다는 것을 의미합니다.
QJsonValueRef
QJsonValueRef 는 QJsonArray 및 QJsonObject 에 대한 헬퍼 클래스입니다. QJsonValueRef 유형의 객체를 가져올 때 QJsonValue에 대한 참조인 것처럼 사용할 수 있습니다. 여기에 할당하면 참조를 가져온 QJsonArray 또는 QJsonObject 의 요소에 할당이 적용됩니다.
다음 메서드는 QJsonValueRef:
- QJsonArray::연산자[](qsizetype i)
- QJsonObject::연산자[](const QString & key) const
Qt의 JSON 지원 및 게임 저장 및 불러오기를참조하세요 .
멤버 타입 문서
enum QJsonValue::Type
이 열거형은 JSON 값의 유형을 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QJsonValue::Null | 0x0 | Null 값 |
QJsonValue::Bool | 0x1 | 부울 값입니다. toBool ()를 사용하여 부울로 변환합니다. |
QJsonValue::Double | 0x2 | 숫자 값입니다. toDouble ()를 사용하여 더블로 변환하거나 toInteger()를 사용하여 퀸트64로 변환합니다. |
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 에서 보는 라틴어-1 문자열을 사용하여 문자열 유형 값을 만듭니다.
QJsonValue::QJsonValue(bool b)
값 b 을 사용하여 Bool 유형의 값을 만듭니다.
QJsonValue::QJsonValue(const QJsonArray &a)
값 a 을 사용하여 배열 유형의 값을 만듭니다.
QJsonValue::QJsonValue(const QJsonObject &o)
값이 o 인 Object 유형의 값을 만듭니다.
QJsonValue::QJsonValue(const QString &s)
값 s 을 사용하여 문자열 유형의 값을 만듭니다.
QJsonValue::QJsonValue(const char *s)
입력의 UTF-8 인코딩을 가정하여 s 값을 가진 문자열 타입의 값을 생성합니다.
애플리케이션을 컴파일할 때 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)
이것은 오버로드된 함수입니다.
Double 타입의 값 v 을 생성합니다.
QJsonValue::QJsonValue(qint64 v)
이것은 오버로드된 함수입니다.
값이 v 인 Double 타입의 값을 만듭니다. 참고: IEEE 754 배정밀도 데이터의 정수 제한은 2^53(-9007199254740992 ~ +9007199254740992)입니다. 이 범위를 벗어나는 값을 전달하면 정밀도 손실이 발생할 수 있습니다.
[noexcept]
QJsonValue::QJsonValue(const QJsonValue &other)
other 의 복사본을 만듭니다.
[noexcept]
QJsonValue::QJsonValue(QJsonValue &&other)
이동 - 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으로 표현할 수 있는 것보다 더 많은 정보를 전달할 수 있습니다. QVariant 이 위의 유형 중 하나가 아닌 경우, 변환이 보장되지 않으며 UUID가 그랬던 것처럼 향후 Qt 버전에서 변경될 수 있습니다. 코드는 위에 나열된 유형 이외의 다른 유형을 사용하지 않도록 노력해야 합니다.
QVariant::isNull()가 참을 반환하면 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
값에 더블이 포함된 경우 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()가 배열이 아닌 경우 defaultValue 이 반환됩니다.
QJsonArray QJsonValue::toArray() const
이 함수는 오버로드된 함수입니다.
값을 배열로 변환하여 반환합니다.
type()가 Array가 아닌 경우 QJsonArray()가 반환됩니다.
bool QJsonValue::toBool(bool defaultValue = false) const
값을 부울로 변환하여 반환합니다.
type()가 부울이 아닌 경우 defaultValue 이 반환됩니다.
double QJsonValue::toDouble(double defaultValue = 0) const
값을 더블로 변환하여 반환합니다.
type()가 더블이 아닌 경우 defaultValue 이 반환됩니다.
int QJsonValue::toInt(int defaultValue = 0) const
값을 정수로 변환하여 반환합니다.
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()가 객체가 아닌 경우 defaultValue 이 반환됩니다.
QJsonObject QJsonValue::toObject() const
이 함수는 오버로드된 함수입니다.
값을 객체로 변환하여 반환합니다.
type()가 객체가 아닌 경우 QJsonObject()가 반환됩니다.
QString QJsonValue::toString() const
값을 QString 로 변환하여 반환합니다.
type()가 문자열이 아닌 경우 null QString 이 반환됩니다.
QString::isNull()도 참조하세요 .
QString QJsonValue::toString(const QString &defaultValue) const
값을 QString 로 변환하여 반환합니다.
type()가 문자열이 아닌 경우 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)
이동 - other 이 값에 할당합니다.
[noexcept]
QJsonValue &QJsonValue::operator=(const QJsonValue &other)
other 에 저장된 값을 이 객체에 할당합니다.
const QJsonValue QJsonValue::operator[](const QString &key) const
key 키의 값을 나타내는 QJsonValue 를 반환합니다.
toObject().value(키)를 호출하는 것과 동일합니다.
키가 존재하지 않거나 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
을 반환합니다.
© 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.