QBinaryJson 命名空间
包含用于将 QJsonDocument 转换为 JSON 二进制格式及其相反操作的函数。 更多...
头文件 | #include <QBinaryJson> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core5Compat) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
qmake | QT += core5compat |
类型
枚举 | DataValidation { Validate, BypassValidation } |
函数
QJsonDocument | fromBinaryData(const QByteArray &data, QBinaryJson::DataValidation validation = Validate) |
QJsonDocument | fromRawData(const char *data, int size, QBinaryJson::DataValidation validation = Validate) |
QByteArray | toBinaryData(const QJsonDocument &document) |
const char * | toRawData(const QJsonDocument &document, int *size) |
详细信息
此命名空间提供实用函数,以与使用 JSON 二进制格式进行序列化的较旧代码保持兼容性。Qt JSON 类型可以转换为 Qt CBOR 类型,然后可以将其序列化为 CBOR 二进制格式,反之亦然。
类型文档
枚举 QBinaryJson::DataValidation
此枚举用于告知 QJsonDocument 是否在将数据转换为 QJsonDocument 时使用 fromBinaryData() 或 fromRawData() 验证二进制数据。
常量 | 值 | 描述 |
---|---|---|
QBinaryJson::Validate | 0 | 在使用之前验证数据。这是默认值。 |
QBinaryJson::BypassValidation | 1 | 绕过数据验证。仅在您从可信任的地方收到数据并且知道它是有效的情况下使用,因为使用无效数据可能会导致应用程序崩溃。 |
函数文档
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(),DataValidation 和 QCborValue。
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 之前,调用者必须保证只要任何 QJsonDocument、QJsonObject 或 QJsonArray 仍然引用数据,data 就不会被删除或修改。从 Qt 5.15 开始,这不再必要了。
另请参阅:toRawData(),fromBinaryData(),DataValidation 和 QCborValue。
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 以及/或其他国家的商标。所有其他商标均为各自所有者的财产。