gpt4 book ai didi

c++ - Qt C++ 从 QJsonValue 到 QByteArray 的转换

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:43:29 25 4
gpt4 key购买 nike

我在 QJsonValue 中有一个大(兆字节)字符串,我需要将其转换为 QByteArray,因为我正在使用 作为数据发送该字符串QNetworkRequest.

目前我正在这样做:

myQJsonObject["myQJsonValue"].toString().toUtf8()

这是否会导致出于某种原因将相同的数据多次复制到内存中?如果是这样,您将如何在不进行不必要的复制的情况下实现这一点?

最佳答案

为什么不使用QJsonDocument?这应该用于阅读和写作。有一种方法QJsonDocument::toBinaryData .这个 API 应该以最有效的方式做所有事情。


评论更新:

单个 JSon 值必须是其他 JSon 类型之一:对象、字符串或一些数字。我很确定你有 JSON 对象。所以你的代码应该是这样的::

JSonValue val = someJsond["someKey"];
if (val.isObject()) {
QJSonDocument doc(val.toObject());
SendToServer(doc.toBinaryData());
} else {
// error or:
SendToServer(val.toString().toUtf8());
}

关于c++ - Qt C++ 从 QJsonValue 到 QByteArray 的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35515065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com