Spec-Zone.ru › Qt 5.6

Класс QJsonDocument

Класс QJsonDocument предоставляет способ чтения и записи JSON-документов. Подробнее...

Заголовок: #include <QJsonDocument>
qmake: QT += core
С тех пор: Qt 5.0
  • Список всех членов, включая унаследованные

Примечание: Все функции в этом классе являются повторно-входными.

Типы public

Перечисление DataValidation { Validate, BypassValidation }
Перечисление JsonFormat { Indented, Compact }

Функции public

QJsonDocument()
QJsonDocument(const QJsonObject &object)
QJsonDocument(const QJsonArray &array)
QJsonDocument(const QJsonDocument &other)
~QJsonDocument()
QJsonArray array() const
bool isArray() const
bool isEmpty() const
bool isNull() const
bool isObject() const
QJsonObject object() const
const char * rawData(int *size) const
void setArray(const QJsonArray &array)
void setObject(const QJsonObject &object)
QByteArray toBinaryData() const
QByteArray toJson(JsonFormat format = Indented) const
QVariant toVariant() const
bool operator!=(const QJsonDocument &other) const
QJsonDocument & operator=(const QJsonDocument &other)
bool operator==(const QJsonDocument &other) const

Статические public члены

QJsonDocument fromBinaryData(const QByteArray &data, DataValidation validation = Validate)
QJsonDocument fromJson(const QByteArray &json, QJsonParseError *error = Q_NULLPTR)
QJsonDocument fromRawData(const char *data, int size, DataValidation validation = Validate)
QJsonDocument fromVariant(const QVariant &variant)

Подробное описание

Класс QJsonDocument предоставляет способ чтения и записи JSON-документов.

QJsonDocument — это класс, который оборачивает весь JSON-документ и может читать и записывать этот документ как из текстового представления с кодировкой UTF-8, так и из собственного двоичного формата Qt.

JSON-документ может быть преобразован из его текстового представления в QJsonDocument с помощью QJsonDocument::fromJson(). toJson() преобразует его обратно в текст. Парсер очень быстрый и эффективный, и он преобразует JSON в двоичное представление, используемое Qt.

Действительность проанализированного документа можно запросить с помощью !isNull()

Документ можно запросить, чтобы определить, содержит ли он массив или объект, с помощью isArray() и isObject(). Массив или объект, содержащиеся в документе, можно получить с помощью array() или object(), а затем прочитать или изменить.

Документ также можно создать из сохраненного двоичного представления с помощью fromBinaryData() или fromRawData().

См. также Поддержка JSON в Qt и Пример JSON Save Game.

Документация по типам членов

Перечисление QJsonDocument::DataValidation

Это значение используется для указания QJsonDocument, требуется ли проверять двоичные данные при преобразовании в QJsonDocument с помощью fromBinaryData() или fromRawData().

Постоянная Значение Описание
QJsonDocument::Validate 0 Проверить данные перед использованием. Это значение по умолчанию.
QJsonDocument::BypassValidation 1 Пропускает проверку данных. Используйте только в том случае, если вы получили данные из надежного источника и знаете, что они действительны, так как использование неверных данных может привести к сбою приложения.

Перечисление QJsonDocument::JsonFormat

Это значение определяет формат массива байтов JSON, созданного при преобразовании в QJsonDocument с помощью toJson().

Постоянная Значение Описание
QJsonDocument::Indented 0 Определяет удобочитаемый вывод в следующем формате:
{
    "Array": [
        true,
        999,
        "string"
    ],
    "Key": "Value",
    "null": null
}
QJsonDocument::Compact 1 Определяет компактный вывод в следующем формате:
{"Array":[true,999,"string"],"Key":"Value","null":null}

Документация по функциям-членам

QJsonDocument::QJsonDocument()

Создаёт пустой и недействительный документ.

QJsonDocument::QJsonDocument(const QJsonObject &object)

Создаёт QJsonDocument из object.

QJsonDocument::QJsonDocument(const QJsonArray &array)

Создаёт QJsonDocument из array.

QJsonDocument::QJsonDocument(const QJsonDocument &other)

Создаёт копию документа other.

QJsonDocument::~QJsonDocument()

Удаляет документ.

Двоичные данные, установленные с помощью fromRawData, не освобождаются.

QJsonArray QJsonDocument::array() const

Возвращает QJsonArray, содержащуюся в документе.

Возвращает пустой массив, если документ содержит объект.

См. также isArray(), object(), и setArray().

[static] QJsonDocument QJsonDocument::fromBinaryData(const QByteArray &data, DataValidation validation = Validate)

Создаёт QJsonDocument из данных.

validation определяет, нужно ли проверять данные на корректность перед использованием. По умолчанию данные проверяются. Если данные некорректны, метод возвращает нулевой документ.

См. также toBinaryData(), fromRawData(), isNull(), и DataValidation.

[static] QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error = Q_NULLPTR)

Парсит json как JSON-документ в кодировке UTF-8 и создаёт QJsonDocument из него.

Возвращает корректный (не нулевой) QJsonDocument, если парсинг успешен. Если парсинг завершился ошибкой, возвращаемый документ будет нулевым, а необязательная переменная error будет содержать подробности об ошибке.

См. также toJson(), QJsonParseError, и isNull().

[static] QJsonDocument QJsonDocument::fromRawData(const char *data, int size, DataValidation validation = Validate)

Создаёт QJsonDocument, используя первые size байтов из data. Предполагается, что data содержит двоично закодированный JSON-документ. Созданный документ не берёт на себя владение data, и вызывающий код должен гарантировать, что data не будет удалён или изменён, пока любой QJsonDocument, QJsonObject или QJsonArray всё ещё ссылаются на данные.

data должен быть выровнен по границе 4 байта.

validation определяет, нужно ли проверять данные на корректность перед использованием. По умолчанию данные проверяются. Если данные некорректны, метод возвращает нулевой документ.

Возвращает QJsonDocument, представляющий данные.

См. также rawData(), fromBinaryData(), isNull(), и DataValidation.

[static] QJsonDocument QJsonDocument::fromVariant(const QVariant &variant)

Создаёт QJsonDocument из QVariant variant.

Если variant содержит тип, отличный от QVariantMap, QVariantList или QStringList, возвращаемый документ некорректен.

См. также toVariant().

bool QJsonDocument::isArray() const

Возвращает true если документ содержит массив.

См. также array() и isObject().

bool QJsonDocument::isEmpty() const

Возвращает true если документ не содержит данных.

bool QJsonDocument::isNull() const

Возвращает true если этот документ равен null.

Нулевые документы — это документы, созданные через конструктор по умолчанию.

Документы, созданные из текста в кодировке UTF-8 или в двоичном формате, проверяются на корректность во время парсинга. Если проверка на корректность завершится неудачно, возвращаемый документ также будет нулевым.

bool QJsonDocument::isObject() const

Возвращает true если документ содержит объект.

См. также object() и isArray().

QJsonObject QJsonDocument::object() const

Возвращает QJsonObject, содержащийся в документе.

Возвращает пустой объект, если документ содержит массив.

См. также isObject(), array(), и setObject().

const char *QJsonDocument::rawData(int *size) const

Возвращает двоичное представление данных. size будет содержать размер возвращаемых данных.

Этот метод полезен, например, для потоковой передачи JSON-документа в двоичном формате в файл.

void QJsonDocument::setArray(const QJsonArray &array)

Устанавливает array как главный объект этого документа.

См. также setObject() и array().

void QJsonDocument::setObject(const QJsonObject &object)

Устанавливает object как главный объект этого документа.

См. также setArray() и object().

QByteArray QJsonDocument::toBinaryData() const

Возвращает двоичное представление документа.

Двоичное представление также является родным форматом, используемым внутри Qt, и очень эффективным и быстрым для преобразования в и из него.

Двоичный формат можно хранить на диске и обмениваться им с другими приложениями или компьютерами. fromBinaryData() может использоваться для преобразования его обратно в JSON-документ.

См. также fromBinaryData().

QByteArray QJsonDocument::toJson(JsonFormat format = Indented) const

Преобразует QJsonDocument в UTF-8 закодированный JSON-документ в заданном формате format.

См. также fromJson() и JsonFormat.

QVariant QJsonDocument::toVariant() const

Возвращает QVariant, представляющий JSON-документ.

Возвращаемый вариант будет QVariantList, если документ — QJsonArray, и QVariantMap, если документ — QJsonObject.

См. также fromVariant() и QJsonValue::toVariant().

bool QJsonDocument::operator!=(const QJsonDocument &other) const

Возвращает true если other не равно этому документу

QJsonDocument &QJsonDocument::operator=(const QJsonDocument &other)

Присваивает other документу этому QJsonDocument. Возвращает ссылку на этот объект.

bool QJsonDocument::operator==(const QJsonDocument &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/qjsondocument.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API