Класс QJsonValue
Класс QJsonValue инкапсулирует значение в формате JSON. Подробнее...
| Заголовок: | #include <QJsonValue> |
| qmake: | QT += core |
| С момента: | Qt 5.0 |
Примечание: Все функции в этом классе являются реентерабельными.
Типы
| Перечисление | Тип { Null, Bool, Double, String, ..., Undefined } |
Открытые функции
| QJsonValue(Тип тип = Null) | |
| QJsonValue(bool b) | |
| QJsonValue(double n) | |
| QJsonValue(int n) | |
| QJsonValue(qint64 n) | |
| QJsonValue(const QString &s) | |
| QJsonValue(QLatin1String s) | |
| QJsonValue(const char *s) | |
| QJsonValue(const QJsonArray &a) | |
| QJsonValue(const QJsonObject &o) | |
| QJsonValue(const QJsonValue &other) | |
| ~QJsonValue() | |
| bool | isArray() const |
| bool | isBool() const |
| bool | isDouble() const |
| bool | isNull() const |
| bool | isObject() const |
| bool | isString() const |
| bool | isUndefined() const |
| 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 |
| QJsonObject | toObject(const QJsonObject &defaultValue) const |
| QJsonObject | toObject() const |
| QString | toString(const QString &defaultValue = QString()) const |
| QVariant | toVariant() const |
| Тип | type() const |
| bool | operator!=(const QJsonValue &other) const |
| QJsonValue & | operator=(const QJsonValue &other) |
| bool | operator==(const QJsonValue &other) const |
Статические открытые члены
| QJsonValue | fromVariant(const QVariant &variant) |
Подробное описание
Класс QJsonValue инкапсулирует значение в формате JSON.
Значение в JSON может быть одного из 6 основных типов:
JSON — это формат для хранения структурированных данных. Он имеет 6 основных типов данных:
- bool QJsonValue::Bool
- double QJsonValue::Double
- string 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::operator[](int i)
- QJsonObject::operator[](const QString & ключ) const
См. также Поддержка JSON в Qt и Пример сохранения игры JSON.
Документация по типу члена
перечисление QJsonValue::Тип
Это перечисление описывает тип значения JSON.
| Постоянная | Значение | Описание |
|---|---|---|
QJsonValue::Null |
0x0 |
Значение Null |
QJsonValue::Bool |
0x1 |
Булевое значение. Используйте toBool() для преобразования в bool. |
QJsonValue::Double |
0x2 |
Число с плавающей запятой. Используйте toDouble() для преобразования в double. |
QJsonValue::String |
0x3 |
Строка. Используйте toString() для преобразования в QString. |
QJsonValue::Array |
0x4 |
Массив. Используйте toArray() для преобразования в QJsonArray. |
QJsonValue::Object |
0x5 |
Объект. Используйте toObject() для преобразования в QJsonObject. |
QJsonValue::Undefined |
0x80 |
Значение не определено. Обычно возвращается в качестве условия ошибки, при попытке чтения значения за пределами массива или несуществующего ключа в объекте. |
Документация по членам-функциям
QJsonValue::QJsonValue(Type type = Null)
Создаёт QJsonValue типа type.
По умолчанию создаётся значение Null.
QJsonValue::QJsonValue(bool b)
Создаёт значение типа Bool со значением b.
QJsonValue::QJsonValue(double n)
Создаёт значение типа Double со значением n.
QJsonValue::QJsonValue(int n)
Это перегруженная функция.
Создаёт значение типа Double со значением n.
QJsonValue::QJsonValue(qint64 n)
Это перегруженная функция.
Создаёт значение типа Double со значением n. ПРИМЕЧАНИЕ: пределы целых чисел для данных двойной точности IEEE 754 составляют 2^53 (-9007199254740992 до +9007199254740992). Если вы передаёте значения за пределами этого диапазона, ожидайте потери точности.
QJsonValue::QJsonValue(const QString &s)
Создаёт значение типа String со значением s.
QJsonValue::QJsonValue(QLatin1String s)
Создаёт значение типа String со значением s.
QJsonValue::QJsonValue(const char *s)
Создаёт значение типа String со значением s, предполагая кодировку UTF-8 на входе.
Вы можете отключить этот конструктор, определив QT_NO_CAST_FROM_ASCII при компиляции своих приложений.
Эта функция была добавлена в Qt 5.3.
QJsonValue::QJsonValue(const QJsonArray &a)
Создаёт значение типа Array со значением a.
QJsonValue::QJsonValue(const QJsonObject &o)
Создаёт значение типа Object со значением o.
QJsonValue::QJsonValue(const QJsonValue &other)
Создаёт копию other.
QJsonValue::~QJsonValue()
Удаляет значение.
[static] QJsonValue QJsonValue::fromVariant(const QVariant &variant)
Преобразует variant в QJsonValue и возвращает его.
Преобразование выполнится следующим образом:
| Исходный тип | Целевой тип |
|---|---|
| QJsonValue::Bool | |
| QJsonValue::Double | |
| QJsonValue::String | |
| QJsonValue::Array | |
| QJsonValue::Object |
Для всех остальных типов QVariant будет выполнено преобразование в QString. Если возвращённая строка пустая, хранится Null QJsonValue, в противном случае — строковое значение, использующее возвращённый QString.
См. также toVariant().
bool QJsonValue::isArray() const
Возвращает true если значение содержит массив.
См. также toArray().
bool QJsonValue::isBool() const
Возвращает true если значение содержит булево значение.
См. также toBool().
bool QJsonValue::isDouble() const
Возвращает true если значение содержит число с плавающей запятой.
См. также toDouble().
bool QJsonValue::isNull() const
Возвращает true если значение null.
bool QJsonValue::isObject() const
Возвращает true если значение содержит объект.
См. также toObject().
bool QJsonValue::isString() const
Возвращает true если значение содержит строку.
См. также toString().
bool QJsonValue::isUndefined() const
Возвращает true если значение не определено. Это может произойти в определённых случаях ошибок, например, при обращении к несуществующему ключу в QJsonObject.
QJsonArray QJsonValue::toArray(const QJsonArray &defaultValue) const
Преобразует значение в массив и возвращает его.
Если type() не является массивом, возвращается defaultValue.
QJsonArray QJsonValue::toArray() const
Это перегруженная функция.
Преобразует значение в массив и возвращает его.
Если type() не является массивом, возвращается 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.
QJsonObject QJsonValue::toObject(const QJsonObject &defaultValue) const
Преобразует значение в объект и возвращает его.
Если type() не является Object, возвращается defaultValue.
QJsonObject QJsonValue::toObject() const
Это перегруженная функция.
Преобразует значение в объект и возвращает его.
Если type() не является Object, возвращается QJsonObject().
QString QJsonValue::toString(const QString &defaultValue = QString()) const
Преобразует значение в QString и возвращает его.
Если type() не является String, возвращается defaultValue.
QVariant QJsonValue::toVariant() const
Преобразует значение в QVariant().
Типы QJsonValue будут преобразованы следующим образом:
| Константа | Описание |
|---|---|
Null |
QVariant() |
Bool |
QMetaType::Bool |
Double |
QMetaType::Double |
String |
QString |
Array |
QVariantList |
Object |
QVariantMap |
Undefined |
QVariant() |
См. также fromVariant().
Type QJsonValue::type() const
Возвращает тип значения.
См. также QJsonValue::Type.
bool QJsonValue::operator!=(const QJsonValue &other) const
Возвращает true, если значение не равно other.
QJsonValue &QJsonValue::operator=(const QJsonValue &other)
Присваивает значение, хранящееся в other, этому объекту.
bool QJsonValue::operator==(const QJsonValue &other) const
Возвращает true, если значение равно other.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qjsonvalue.html