QBinaryJson 命名空间

包含用于将 QJsonDocument 转换为 JSON 二进制格式及其相反操作的函数。 更多...

头文件 #include <QBinaryJson>
CMakefind_package(Qt6 REQUIRED COMPONENTS Core5Compat)
target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmakeQT += core5compat

类型

枚举DataValidation { Validate, BypassValidation }

函数

QJsonDocumentfromBinaryData(const QByteArray &data, QBinaryJson::DataValidation validation = Validate)
QJsonDocumentfromRawData(const char *data, int size, QBinaryJson::DataValidation validation = Validate)
QByteArraytoBinaryData(const QJsonDocument &document)
const char *toRawData(const QJsonDocument &document, int *size)

详细信息

此命名空间提供实用函数,以与使用 JSON 二进制格式进行序列化的较旧代码保持兼容性。Qt JSON 类型可以转换为 Qt CBOR 类型,然后可以将其序列化为 CBOR 二进制格式,反之亦然。

类型文档

枚举 QBinaryJson::DataValidation

此枚举用于告知 QJsonDocument 是否在将数据转换为 QJsonDocument 时使用 fromBinaryData() 或 fromRawData() 验证二进制数据。

常量描述
QBinaryJson::Validate0在使用之前验证数据。这是默认值。
QBinaryJson::BypassValidation1绕过数据验证。仅在您从可信任的地方收到数据并且知道它是有效的情况下使用,因为使用无效数据可能会导致应用程序崩溃。

函数文档

QJsonDocument QBinaryJson::fromBinaryData(const QByteArray &data, QBinaryJson::DataValidation validation = Validate)

data 创建一个 QJsonDocument

validation 决定在数据使用之前是否检查其有效性。默认情况下,数据将被验证。如果 data 无效,则方法返回一个空文档。

注意: 二进制 JSON 编码仅用于向后兼容。它未经过官方文档化,并且对可编码的 JSON 文档的最大大小有限制。Qt JSON 类型可以转换为 Qt CBOR 类型,然后可以将其序列化为 CBOR 二进制格式,反之亦然。CBOR 格式是一个定义良好且限制较小的二进制表示形式,用于 JSON 的超集。

另请参阅:toBinaryData(),fromRawData(),DataValidationQCborValue

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

创建一个使用 data 中的第一个 size 字节的 QJsonDocument。它假定 data 包含一个二进制编码的 JSON 文档。创建的文档不会获取 data 的所有权。数据被复制到不同的数据结构中,之后可以删除或修改原始数据。

data 必须对齐到 4 字节边界。

validation 决定在数据使用之前是否检查其有效性。默认情况下,数据将被验证。如果 data 无效,则方法返回一个空文档。

返回表示数据的 QJsonDocument

注意: 二进制 JSON 编码仅用于向后兼容。它未经过官方文档化,并且对可编码的 JSON 文档的最大大小有限制。Qt JSON 类型可以转换为 Qt CBOR 类型,然后可以将其序列化为 CBOR 二进制格式,反之亦然。CBOR 格式是一个定义良好且限制较小的二进制表示形式,用于 JSON 的超集。

注意:在 Qt 5.15 之前,调用者必须保证只要任何 QJsonDocumentQJsonObjectQJsonArray 仍然引用数据,data 就不会被删除或修改。从 Qt 5.15 开始,这不再必要了。

另请参阅:toRawData(),fromBinaryData(),DataValidationQCborValue

QByteArray QBinaryJson::toBinaryData(const QJsonDocument &document)

返回 document 的二进制表示形式。

二进制表示形式也是 Qt 内部使用的本机格式,并且转换速度快,效率高。

二进制格式可以存储在磁盘上,与其他应用程序或计算机交换。可以使用 fromBinaryData() 将它转换回 JSON 文档。

注意: 二进制 JSON 编码仅用于向后兼容。它未经过官方文档化,并且对可编码的 JSON 文档的最大大小有限制。Qt JSON 类型可以转换为 Qt CBOR 类型,然后可以将其序列化为 CBOR 二进制格式,反之亦然。CBOR 格式是一个定义良好且限制较小的二进制表示形式,用于 JSON 的超集。

另请参阅:fromBinaryData() 和 QCborValue

const char *QBinaryJson::toRawData(const QJsonDocument &document, int *size)

返回 document 的原始二进制表示形式。 size 将包含返回数据的尺寸。

此方法对例如将 JSON 文档以二进制形式流式传输到文件很有用。

注意: 二进制 JSON 编码仅用于向后兼容。它未经过官方文档化,并且对可编码的 JSON 文档的最大大小有限制。Qt JSON 类型可以转换为 Qt CBOR 类型,然后可以将其序列化为 CBOR 二进制格式,反之亦然。CBOR 格式是一个定义良好且限制较小的二进制表示形式,用于 JSON 的超集。

另请参阅:fromRawData(),fromBinaryData(),toBinaryData() 和 QCborValue

© 2024 Qt 公司有限公司。此处包含的文档贡献是各自所有者的版权。此处的文档根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款进行许可。Qt 以及相应的徽标是芬兰的 Qt 公司 Ltd 以及/或其他国家的商标。所有其他商标均为各自所有者的财产。