在 Mac 中使用 QJSON - 遇到一些问题
Posted
技术标签:
【中文标题】在 Mac 中使用 QJSON - 遇到一些问题【英文标题】:QJSON using in Mac - getting some issues 【发布时间】:2010-09-17 06:09:38 【问题描述】:我正在使用 QJson 进行解析。但是我遇到了一些问题。我使用了以下代码:
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");
输出是:
Starting /Users/QT Developement/CityBook-build-desktop/CityBook.app/Contents/MacOS/CityBook...
""
QVariant(, )
0
error String ""
error 0
【问题讨论】:
【参考方案1】:readAll
函数的结果是一个空字节数组。根据文档,这可能意味着没有可用数据或发生错误。
【讨论】:
但是我可以在 QMessageBox 中看到结果。 尝试只阅读一次回复。首先在临时变量中获取它,然后在消息框中显示它并使用 qdebug 是的 .. 非常感谢帕特里斯。我现在可以看到解析结果。非常感谢。但原因是什么?请告诉我。谢谢 您正在阅读来自网络的回复,一旦阅读 QNetworkReply 等待新的回复。您可以检查来自 QIODevice 的标志以上是关于在 Mac 中使用 QJSON - 遇到一些问题的主要内容,如果未能解决你的问题,请参考以下文章