Qt QJSON在Mac中的使用-遇到一些问题
我正在使用QJson进行解析。但我遇到了一些问题。我使用了以下代码:Qt QJSON在Mac中的使用-遇到一些问题,qt,qt4,qjson,Qt,Qt4,Qjson,我正在使用QJson进行解析。但我遇到了一些问题。我使用了以下代码: void CityBook ::getCityList(QUrl url) { //!connect(cityReply, SIGNAL(readyRead()),this, SLOT(httpReadyRead())); cityGuideNetworkAccessManager = new QNetworkAccessManager(this); connec
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");
}
}
函数的结果是一个空字节数组。根据文档,这可能意味着没有可用数据或出现错误。但我可以在QMessageBox中看到结果。请尝试只读取一次reply。首先在temp变量中获取它,然后在消息框中显示它,并使用qdebugyes。。非常感谢你,帕特里斯。我现在可以看到解析结果了。谢谢。但原因是什么?请告诉我。感谢您正在阅读来自网络的回复,一旦阅读QNetworkReply,请等待新的回复。您可以从QIODevice检查标志
Starting /Users/QT Developement/CityBook-build-desktop/CityBook.app/Contents/MacOS/CityBook...
""
QVariant(, )
0
error String ""
error 0