class QJsonDocument#

QJsonDocument类提供了一种读取和写入JSON文档的方法。更多信息

摘要#

方法#

静态函数#

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单的方式告诉我们

详细描述#

QJsonDocument是一个封装完整JSON文档的类,可以从UTF-8编码的文本表示形式中读取该文档,并将其写入。

可以使用fromJson()将JSON文档从其文本表示形式转换为QJsonDocument,使用toJson()将其转换回文本。解析器非常快速且效率高,将JSON转换为Qt使用的二进制表示形式。

可以通过! isNull()查询解析文档的有效性

可以使用isArray()isObject()查询文档是否包含数组或对象。可以使用array()object()检索文档中包含的数组或对象,然后读取或操作它。

类名 JsonFormat#

警告

本节包含从 C++ 自动翻译到 Python 的代码片段,可能包含错误。

此值定义了在将数据转换为 QJsonDocument 使用 toJson() 方法时生成的 JSON 字节数组的格式。

常量

描述

QJsonDocument.Indented

定义为如下人类可读的输出:

"Array": [
    True,
    999,
    "string"
],
"Key": "Value",
"null": null

QJsonDocument.Compact

定义为如下紧凑输出:

{"Array":[True,999,"string"],"Key":"Value","null":null}
__init__(array)#
参数:

arrayQJsonArray

array 构造 QJsonDocument

__init__(other)
参数:

otherQJsonDocument

创建 other 文档的副本。

__init__(object)
参数:

objectQJsonObject

object 创建 QJsonDocument

__init__()

构建一个空且无效的文档。

array()#
返回类型:

QJsonArray

返回文档中包含的 QJsonArray

如果文档包含对象,则返回空数组。

静态 fromJson(json[, error=None])#
参数:
返回类型:

QJsonDocument

解析UTF-8编码的JSON文档,并从中创建一个QJsonDocument对象。

如果解析成功,返回一个有效的(非空的)QJsonDocument对象。如果失败,返回的文档将是空的,并且可选的error变量将包含关于错误的更多详细信息。

static fromVariant(variant)#
参数:

variant – 对象

返回类型:

QJsonDocument

从QVariant类型的QVariant变体创建一个QJsonDocument

如果variant包含除QVariantMapQVariantHashQVariantListQStringList以外的任何类型,则返回的文档无效。

另请参阅

toVariant()

isArray()#
返回类型:

bool

如果文档包含数组,返回true

另请参阅

array() isObject()

isEmpty()#
返回类型:

bool

如果文档不包含任何数据,返回true

isNull()#
返回类型:

bool

如果这个文档是空的,返回 true

空文档是通过默认构造函数创建的。

从UTF-8编码的文本或二进制格式创建的文档在解析过程中进行验证。如果验证失败,返回的文档也将是空的。

isObject()#
返回类型:

bool

如果文档包含对象,返回true

另请参阅

object() isArray()

object()#
返回类型:

QJsonObject

返回文档中包含的 QJsonObject

如果文档包含数组,则返回空对象。

__ne__(other)#
参数:

otherQJsonDocument

返回类型:

bool

如果 other 不等于此文档,则返回 true

__eq__(other)#
参数:

otherQJsonDocument

返回类型:

bool

如果 other 文档与此文档相同,则返回 true

operator(key)#
参数:

keyQLatin1String

返回类型:

QJsonValue

operator(key)
参数:

key – str

返回类型:

QJsonValue

这是一个重载函数。

operator(key)
参数:

key – str

返回类型:

QJsonValue

返回一个表示键 key 的值的 QJsonValue

相当于调用 object() .value(key)。

如果键不存在,或者 isObject() 返回 false,则返回的 QJsonValueUndefined

另请参阅

QJsonValue isUndefined() QJsonObject

operator(i)
参数:

i – int

返回类型:

QJsonValue

返回表示索引 i 值的 QJsonValue

等价于调用 array() 的 .at(i)。

如果 i 超出范围或 isArray() 为 false,则返回的 QJsonValueUndefined

setArray(array)#
参数:

arrayQJsonArray

array 设置为此文档的主对象。

另请参阅

setObject() array()

setObject(object)#
参数:

objectQJsonObject

object 设置为此文档的主对象。

另请参阅

setArray() object()

swap(other)#
参数:

otherQJsonDocument

与该文档交换 other。此操作非常快速且从不失败。

toJson([format=QJsonDocument.JsonFormat.Indented])#
参数:

formatJsonFormat

返回类型:

QByteArray

QJsonDocument 转换为 UTF-8 编码的 JSON 文档,格式由 format 提供。

另请参阅

fromJson() JsonFormat

toVariant()#
返回类型:

对象

返回表示 Json 文档的 QVariant

返回的变体将是一个如果文档是 QJsonArrayQVariantList,如果是 QJsonObjectQVariantMap

另请参阅

fromVariant() toVariant()