QJsonDocument类
QJsonDocument类提供了一种读取和写入JSON文档的方法。更多...
头文件 | #include <QJsonDocument> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
- 所有成员列表,包括继承的成员
- QJsonDocument是Qt对JSON支持的一部分以及在Qt中的隐式共享类。
注意:此类中所有函数都是重入的。
公共类型
枚举 | JsonFormat { Indented, Compact } |
公共函数
QJsonDocument() | |
QJsonDocument(const QJsonObject &object) | |
QJsonDocument(const QJsonArray &array) | |
QJsonDocument(const QJsonDocument &other) | |
QJsonDocument(QJsonDocument &&other) | |
~QJsonDocument() | |
QJsonArray | array() const |
bool | isArray() const |
bool | isEmpty() const |
bool | isNull() const |
bool | isObject() const |
QJsonObject | object() const |
void | setArray(const QJsonArray &array) |
void | setObject(const QJsonObject &object) |
void | swap(QJsonDocument &other) |
QByteArray | toJson(QJsonDocument::JsonFormat format = Indented) const |
QVariant | toVariant() const |
bool | operator!=(const QJsonDocument &other) const |
QJsonDocument & | operator=(const QJsonDocument &other) |
QJsonDocument & | operator=(QJsonDocument &&other) |
bool | operator==(const QJsonDocument &other) const |
const QJsonValue | operator[](const QString &key) const |
const QJsonValue | operator[](QStringView key) const |
const QJsonValue | operator[](QLatin1StringView key) const |
const QJsonValue | operator[](qsizetype i) const |
静态公共成员
QJsonDocument | fromJson(const QByteArray &json, QJsonParseError *error = nullptr) |
QJsonDocument | fromVariant(const QVariant &variant) |
详细说明
QJsonDocument是一个类,它可以封装整个JSON文档,并可以从UTF-8编码的文本表示中读取和写入此文档。
可以使用QJsonDocument::fromJson()将JSON文档从文本表示转换为QJsonDocument。使用toJson()将其转换回文本。解析器非常快速且高效,可以将JSON转换为Qt使用的二进制表示。
可以使用!isNull()查询解析的文档的有效性。
可以使用isArray()和isObject()查询文档是否包含数组或对象。可以使用array()或object()检索文档中包含的数组或对象,然后进行读取或操作。
也请参阅Qt中的JSON支持和保存和加载游戏。
成员类型文档
enum QJsonDocument::JsonFormat
此值定义了使用toJson()转换为QJsonDocument时生成的JSON字节数组的格式。
常量 | 值 | 描述 |
---|---|---|
QJsonDocument::Indented | 0 | 定义以下可读性输出{ "Array": [ true, 999, "string" ], "Key": "Value", "null": null } |
QJsonDocument::Compact | 1 | 定义以下紧凑输出{"Array":[true,999,"string"],"Key":"Value","null":null} |
成员函数文档
QJsonDocument::QJsonDocument()
构造一个空且无效的文档。
[explicit]
QJsonDocument::QJsonDocument(const QJsonObject &object)
从对象创建QJsonDocument。
[explicit]
QJsonDocument::QJsonDocument(const QJsonArray &array)
从数组构造QJsonDocument。
QJsonDocument::QJsonDocument(const QJsonDocument &other)
创建其他文档的副本。
[noexcept]
QJsonDocument::QJsonDocument(QJsonDocument &&other)
将其他文档移动构造为QJsonDocument。
[noexcept]
QJsonDocument::~QJsonDocument()
删除文档。
使用fromRawData设置的二进制数据集不会被释放。
QJsonArray QJsonDocument::array() const
返回文档中的QJsonArray。
如果文档包含对象,则返回空数组。
也请参阅isArray(),object()和setArray()。
[静态]
QJsonDocument QJsonDocument::fromJson(const QByteArray &json, QJsonParseError *error = nullptr)
将UTF-8编码的JSON文档解析为JSON对象,并从中创建一个QJsonDocument。
如果解析成功,返回一个有效(非空)的QJsonDocument。如果失败,返回的文档将为空,可选的error变量将包含有关错误的更多详细信息。
另请参阅toJson(),QJsonParseError,以及isNull。
[静态]
QJsonDocument QJsonDocument::fromVariant(const QVariant &variant)
从QVariant variant创建一个QJsonDocument。
如果variant包含的类型不是QVariantMap,QVariantHash,QVariantList或QStringList,则返回的文档无效。
另请参阅toVariant。
bool QJsonDocument::isArray() const
如果文档包含数组,则返回true
。
bool QJsonDocument::isEmpty() const
如果文档不包含任何数据,则返回true
。
bool QJsonDocument::isNull() const
如果此文档为空,则返回true
。
空文档是通过默认构造函数创建的。
从UTF-8编码的文本或二进制格式创建的文档在解析过程中进行验证。如果验证失败,则返回的文档也将为空。
bool QJsonDocument::isObject() const
如果文档包含对象,则返回true
。
QJsonObject QJsonDocument::object() const
返回文档中包含的QJsonObject。
如果文档包含数组,则返回一个空对象。
void QJsonDocument::setArray(const QJsonArray &array)
将array设置为文档的主要对象。
void QJsonDocument::setObject(const QJsonObject &object)
将object设置为该文档的主对象。
[noexcept]
void QJsonDocument::swap(QJsonDocument &other)
与这个文档交换other。此操作非常快且从不失败。
QByteArray QJsonDocument::toJson(QJsonDocument::JsonFormat format = Indented) const
将QJsonDocument转换为UTF-8编码的JSON文档,格式为提供的format。
另请参阅fromJson() 和 JsonFormat。
QVariant QJsonDocument::toVariant() const
返回表示JSON文档的QVariant。
如果文档是QJsonArray,返回的变体将是QVariantList;如果文档是QJsonObject,则是一个QVariantMap。
另请参阅fromVariant() 和 QJsonValue::toVariant。
bool QJsonDocument::operator!=(const QJsonDocument &other) const
如果other与该文档不相等,则返回true
。
QJsonDocument &QJsonDocument::operator=(const QJsonDocument &other)
将other文档分配给此QJsonDocument。返回对该对象的引用。
[noexcept]
QJsonDocument &QJsonDocument::operator=(QJsonDocument &&other)
移动分配other到该文档。
bool QJsonDocument::operator==(const QJsonDocument &other) const
如果other文档与该文档相等,则返回true
。
const QJsonValue QJsonDocument::operator[](const QString &key) const
返回表示关键key值的QJsonValue。
相当于调用object().value(key)。
如果键不存在,或者如果isObject()为false,则返回的QJsonValue是QJsonValue::Undefined。
另请参阅 QJsonValue、QJsonValue::isUndefined()和QJsonObject。
const QJsonValue QJsonDocument::operator[](QStringView key) const
这是一个重载函数。
const QJsonValue QJsonDocument::operator[](QLatin1StringView key) const
这是一个重载函数。
const QJsonValue QJsonDocument::operator[](qsizetype i) const
返回一个表示索引i值QJsonValue。
等同于调用array().at(i)。
如果i超出范围,或者isArray()是false,则返回的QJsonValue是QJsonValue::Undefined。
© 2024 Qt公司。本文件中的文档贡献是各自所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款授权的。Qt及其相应徽标是芬兰的Qt公司及其在全球的子lighet和附属公司的商标。所有其他商标均为其各自所有者的财产。