Когда я вызываю запрос API с QNetworkRequest и сохраняю его в строку, включенный файл 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
Но иногда все идет хорошо!?
Большое спасибо за вашу помощь !!