2
J'utilise QJson pour l'analyse. Mais je suis coincé avec quelques problèmes. J'utilise le code suivant:Utilisation de QJSON sous Mac - problèmes rencontrés
void CityBook ::getCityList(QUrl url)
{
//!connect(cityReply, SIGNAL(readyRead()),this, SLOT(httpReadyRead()));
cityGuideNetworkAccessManager = new QNetworkAccessManager(this);
connect(cityGuideNetworkAccessManager, SIGNAL(finished(QNetworkReply*)),
this, SLOT(httpReadyRead(QNetworkReply*)));
QNetworkRequest cityRequest(url);
cityGuideNetworkAccessManager->get(cityRequest);
}
void CityBook::httpReadyRead(QNetworkReply *reply)
{
QMessageBox::information(this, tr("HTTP"),
tr(reply->readAll()),QMessageBox::NoButton
);
QJson::Parser parser;
bool ok;
const QByteArray &resultbyte = reply->readAll();
qDebug() << resultbyte;
QVariant result1 = parser.parse(reply->readAll(), &ok);
qDebug() << result1;
QVariantList result=parser.parse(resultbyte,&ok).toList();
qDebug()<< result.size();
if (!ok)
{
qFatal("An error occurred during parsing");
exit (1);
}
qDebug() <<"error String"<< parser.errorString();
qDebug() <<"error" <parser.errorLine();
//! QVariantList entries = result["name"].toList();
foreach (QVariant city, result) {
QVariantMap names = city.toMap();
qDebug() << "\t-" << names.value("name");
}
}
La sortie est la suivante:
Starting /Users/QT Developement/CityBook-build-desktop/CityBook.app/Contents/MacOS/CityBook...
""
QVariant(,)
0
error String ""
error 0
Mais je peux voir le résultat dans le QMessageBox. – Finder
Essayez de lire la réponse une seule fois. Obtenez-le d'abord dans une variable temp puis affichez-le dans la boîte de message et en utilisant qdebug –
oui .. Merci beaucoup Patrice. Je peux voir le résultat de l'analyse maintenant. Merci beaucoup. Mais qu'est-ce que la raison? s'il vous plaît dites-moi. Merci – Finder