当我使用QNetworkRequest调用API请求并将其保存为字符串时,包含的JSON文件有时不完整。但是,字符串总是在其他地方断开。
首先,我在函数中声明了变量URL,然后在下面称为函数。
url = "https://world.openfoodfacts.org/api/v0/product/" + barcode + ".json";
startRequest(url);
以下功能检索JSON文件并从中过滤产品名称。
void MainWindow::startRequest(QUrl url)
{
reply = qnam.get(QNetworkRequest(url));
connect(reply, SIGNAL(readyRead()),
this, SLOT(httpReadyRead()));
}
void MainWindow::httpReadyRead()
{
json = (QString)reply->readAll();
//json.replace(QString("'"), QString(" "));
qDebug() << json.toUtf8();
QJsonParseError error;
QJsonDocument jsonDocument = QJsonDocument::fromJson(json.toUtf8(), &error);
if (error.error == QJsonParseError::NoError) {
if (jsonDocument.isObject()) {
QVariantMap result = jsonDocument.toVariant().toMap();
qDebug() << "status_verbose:" << result["status_verbose"].toString();
if(result["status_verbose"].toString() == "product found"){
QVariantMap nestedMap = result["product"].toMap();
ui->name->setText(nestedMap["product_name"].toString());
}else{
ui->name->setText("Produkt wurde in der Datenbank nicht gefunden!!");
}
}
} else {
qFatal(error.errorString().toUtf8().constData());
//exit(1);
}
}
这是错误代码:
unterminated string
但是有时候进展顺利!?
非常感谢您的帮助!