阅读 339

Qt:QJsonDocument

0、说明

QJsonDocument类提供了read/write JSON文档的方法。

QJsonDocument::fromJson()方法,可以从将一个基于文本表示的JSON文件转换为QJsonDocument,用QJsonDocument::toJson()则能起到相反的用法。在此过程中的语法解析是很高效的,并且可以将JSON转换为Qt使用的二进制数据

可以用 !isNull()来知晓被解析文档的合法性;用isArray()、isObject()来检查这个Doc是否包含一个ArrayObject。如果要提取这些ArrayObject,可以通过调用array()、object()来实现,之后就能对Array、Object进行相关操作。

一个Doc也可以从一个二进制数据中提取,使用fromBinaryData()、fromRawData()

1、模块和加载项

Header: #include
qmake: QT += core
Since: Qt 5.0

2、构造

(QJsonDocument &&other) 可以从QJsonDocument、QJsonArray、QJsonObject中构造
(QJsonDocument other)
(QJsonArray array)
(QJsonObject object)
()

 

3、静态字段

类型

字段

可用数据

说明

enum DataValidation { Validate, BypassValidation } 该字段告诉QJsonDocument要转化的二进制数据是否合法,即是否可以用fromBinaryData() or fromRawData()来把二进制数据转化为QJsonDocument
enum JsonFormat { Indented, Compact } 该字段定义了由QJsonDocument产生的JSON的格式

JsonFormat

ConstantValueDescription
QJsonDocument::Indented 0 Defines human readable output as follows:
    {
        "Array": [
            true,
            999,
            "string"
        ],
        "Key": "Value",
        "null": null
    }
QJsonDocument::Compact 1 Defines a compact output as follows:
    {"Array":[true,999,"string"],"Key":"Value","null":null}

4、静态方法

返回值类型

方法

说明

QJsonDocument fromJson(QByteArray json, QJsonParseError *error = nullptr)

从一个QByteArray(UTF-8编码的二进制数据)中进行解析,提取QJsonDocument。

失败时,返回null,且第二个参数中会包含更多细节信息。

QJsonDocument (QVariant variant)

从一个QVariant构造一个QJsonDocument。

如果该QVariant包含除, ,  or 以外的类型,返回的document将是非法的

 

5、实例方法

返回值类型

方法

说明

QJsonDocument &

bool

bool

QJsonValue

QJsonValue

(QJsonDocument other)

(const QJsonDocument &other)

(const QJsonDocument &other)

(QString key)

(int i)

赋值

不相等判断

相等判断

取doc[key]对应的QJsonValue,等同于调用object().value(key)。当isObject()返回false时,该方法返回的Object是Undefined类型

用doc[i]的方式访问QJsonArray中的值

QJsonArray ()

返回该Doc对应的QJsonArray。

如果包含Object时返回空Array

bool

()

()

()

()

当Doc包含一个array时返回true

当Doc不含任何数据时返回true

当Doc为null时返回true

当Doc包含一个Object时返回true

QJsonObject ()

返回Doc中包含的QJsonObject

如果包含一个Array返回空Object

void

(QJsonArray array)

(QJsonObject object)

设置array为该Doc的内容

设置object为该Doc的内容

void (QJsonDocument &other) 交换两个OJsonDocument的内容
QByteArray

()

(QJsonDocument::JsonFormat format)

将QJsonDocument转化为indented格式,UTF-8编码的JSON文件

将QJsonDocument转化为UTF-8编码,指定格式的JSON文件

QVariant ()

返回该QJsonDocument对应的QVariant。

当Doc为QJsonArray,返回QVariantList

当Doc为QVariantMap,返回QJsonObject

原文:https://www.cnblogs.com/ShineLeBlog/p/14966601.html

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐