- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在 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 的连接语法具有编译时连接验证的优势,使用 SIGNAL
和 SLOT
宏时不存在这一点。
关于c++ - Json QtNetwork回复QByteArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33523724/
我正在使用 QMap RegTable; (Seprate Class Variable) 用于存储 Modbus 寄存器地址和从串口接收到的数据。一切正常,从串口读取数据并正确填充到 QByteA
假设我们有一个功能商店 void store(const QByteArray& data); 此函数的工作是获取数据 并将其存储起来。不幸的是,如果参数是用 QByteArray::fromRawD
我有一个非常简单的加密/解密程序。加密后,我的程序将加密文本作为 QByteArray 返回,然后我将其保存到文本文件中。从文件中检索 ByteArray 进行解密时,我不确定它的格式是否正确,或者文
请帮助进行这些转换。这是输入; QByteArray byteArr; QBitArray bitArr; QFile file(adress); byteArr.readAll(file); 从字节
检查 QByteArray 的大小总是返回 4 个字节,我假设是由于 Qt 中隐式共享数据: int n = 50; //or n = 100, 200 QByteArray arr(n,'a');
我需要编写一个函数来获取 optional 的所有权的底层数组。 在Rust中,是这样实现的: fn my_func(f: &mut Option>) -> Box { //how to d
我想创建 SerialPort 类,它可以自动接收消息,然后发出信号。 但是当我编译它时显示错误信息: error: 'QObject' is an ambiguous base of 'Serial
正如您可能从标题中发现的那样,我在转换 QByteArray 时遇到了问题。为整数。 QByteArray buffer = server->read(8192); QByteArray q_si
我目前在使用 QSerialPort 时遇到了一些问题:当我使用一个示例中的函数时,它看起来像 QKeyEvent *e; emit getData(e->text().toLocal8Bit());
我有一个像这样的自定义结构: struct aReminderStruct{ QString name; QDate date; QTime time; QString
我正在使用 Qt 和 C++。我必须管理电子板的错误代码。我可以以必须将其转换为 QVariant 的 QByteArray 的形式获取这些错误。我没有找到任何实用的方法来做到这一点(所以如果你有一个
使用 QByteArray QIODevice::readAll()从 QT5 开始,我能够从 txt 文件或图像制作字节数组,之后使用解码并正确地重新创建文件。但是,当我尝试使用 .db 文件 (S
我有一个文本编辑器,我在其中键入十六进制数字,然后将此文本转换为 QByteArray。 这是我的代码: QByteArray parsedValue = QByteArray::fromHex(ex
尝试编写一个非常简单的 Qt 程序(因为这就是我的全部能力!)... ...我已将一个相当小的二进制文件读入 QbyteArray,我可以看到 QByteArray 正确地保存了该数据。我想将一个指向
我有以下代码需要从纯 C++ 转换为 qt: // txMessage and UserData are char arrays memcpy(&txMessage[18], UserData, 8)
我想在 Qt 中将数组转换为 QByteArray。有人可以解释这个概念吗?请举例说明。 最佳答案 QByteArray 有一个 constructor就是这样做的。 这是如何使用它: const c
为什么声明: QByteArray data (initialized somehow); if(data.at(0) == 0xFF) do_something(); 发出这样的警告:由于数据类型
从 QByteArray 开始,我想在我的 QByteArray 中搜索“\n”字符,并将所有字符从头到“\n”连接起来,并将它们保存在 QString 中;之后,我将传递到下一个“\n”之前的以下字
我需要转换一个 QString 这是 已经以十六进制格式转换为 QByteArray。例如: QString a = "AF5603B4" 应存储在 QByteArray 中: QByteArray
在我的程序中,我经常使用串行通信,所以 QByteArray经常使用。 我想知道是否有更短的方法来初始化 QByteArray具有特定字节比: const char test_data[] = {
我是一名优秀的程序员,十分优秀!