gpt4 book ai didi

c++ - Json QtNetwork回复QByteArray

转载 作者:行者123 更新时间:2023-11-30 02:35:31 25 4
gpt4 key购买 nike

我需要在 Qt/c++ 中做一个请求来获取一个 JSON 文件,然后解析它并填充我的对象。

请求看起来不错,“看起来”我的 QtNetworkReply 回复已填充。

但经过多次尝试,我仍然不明白如何将它转换成 QbyteArray(我什至不知道这样做是否正确...),以便能够将它转换成我的类.

这是我的代码:

QNetworkAccessManager networkManager;
QUrl url("https://api.myjson.com/bins/uvki"); //url from a free json host
QNetworkRequest request;enter code here
request.setUrl(url);
QNetworkReply* reply = networkManager.get(request);
QByteArray reponse;

if (reply == NULL)
{
std::cout << "Damn" << std::endl;
exit(2);
}
reponse = reply->readAll();
if (reponse == NULL)
{
std::cout << "i hate you" << std::endl;
exit(1000);
}

我可能做了一些愚蠢的事情,我只有 2 天的 C++

你能告诉我如何将我的“回复”转换为“回复”吗?

最佳答案

@MichaelBoone 提供的答案是正确的。

此外,还有 C++11 ,您可以使用 Qt 5 的 QObject::connection 语法和 lambda 函数来简化代码

QJsonDocument document;
QNetworkReply* pReply = networkManager.get(request);

connect(reply, &QNetworkReply::finished, [=](){

// the reply will return here
QByteArray response = pReply->readAll();
document = QJsonDocument::fromBinaryData(response);

});

Qt 5 的连接语法具有编译时连接验证的优势,使用 SIGNALSLOT 宏时不存在这一点。

关于c++ - Json QtNetwork回复QByteArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33523724/

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