2010-09-17 3 views
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 

Répondre

3

Le résultat de la fonction readAll est un tableau d'octets vides. Selon la documentation, cela peut signifier soit qu'aucune donnée n'est disponible, soit qu'une erreur est survenue.

+0

Mais je peux voir le résultat dans le QMessageBox. – Finder

+2

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 –

+0

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

Questions connexes