PySide6.QtCore.QJsonDocument

class QJsonDocument

QJsonDocument 类提供了一种读写 JSON 文档的方法。更多

概要

方法

静态函数

注意

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

详细描述

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

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

可以使用! isNull()来查询解析文档的有效性。

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

另请参阅

JSON Support in Qt 保存和加载游戏

class JsonFormat

警告

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

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

常量

描述

QJsonDocument.Indented

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

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

QJsonDocument.Compact

定义紧凑输出如下:

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

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

__init__(array)
Parameters:

数组QJsonArray

array构造一个QJsonDocument

__init__(other)
Parameters:

其他QJsonDocument

创建other文档的副本。

__init__(object)
Parameters:

对象QJsonObject

object创建一个QJsonDocument

array()
Return type:

QJsonArray

返回文档中包含的QJsonArray

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

static fromJson(json[, error=None])
Parameters:
Return type:

QJsonDocument

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

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

static fromVariant(variant)
Parameters:

variant – 对象

Return type:

QJsonDocument

QVariant variant创建一个QJsonDocument

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

另请参阅

toVariant()

isArray()
Return type:

布尔

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

另请参阅

array() isObject()

isEmpty()
Return type:

布尔

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

isNull()
Return type:

布尔

如果此文档为空,则返回 true

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

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

isObject()
Return type:

布尔

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

另请参阅

object() isArray()

object()
Return type:

QJsonObject

返回文档中包含的QJsonObject

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

__ne__(rhs)
Parameters:

rhsQJsonDocument

Return type:

布尔

如果 lhs 文档不等于 rhs 文档,则返回 true,否则返回 false

__eq__(rhs)
Parameters:

rhsQJsonDocument

Return type:

布尔

如果 lhs 文档等于 rhs 文档,则返回 true,否则返回 false

operator(key)
Parameters:

keyQLatin1String

Return type:

QJsonValue

operator(key)
Parameters:

key – str

Return type:

QJsonValue

这是一个重载函数。

operator(key)
Parameters:

key – str

Return type:

QJsonValue

返回一个QJsonValue,表示键key对应的值。

等同于调用 object() .value(key)。

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

另请参阅

QJsonValue isUndefined() QJsonObject

operator(i)
Parameters:

i – 整数

Return type:

QJsonValue

返回一个QJsonValue,表示索引i的值。

等同于调用 array() .at(i)。

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

setArray(array)
Parameters:

数组QJsonArray

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

另请参阅

setObject() array()

setObject(object)
Parameters:

对象QJsonObject

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

另请参阅

setArray() object()

swap(other)
Parameters:

其他QJsonDocument

将文档 other 与此文档交换。此操作非常快速且永远不会失败。

toJson([format=QJsonDocument.JsonFormat.Indented])
Parameters:

格式JsonFormat

Return type:

QByteArray

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

另请参阅

fromJson() JsonFormat

toVariant()
Return type:

对象

返回一个表示Json文档的QVariant

如果文档是QJsonArray,则返回的变体将是QVariantList;如果文档是QJsonObject,则返回的变体将是QVariantMap

另请参阅

fromVariant() toVariant()