在 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 - 遇到一些问题的主要内容,如果未能解决你的问题,请参考以下文章

Qt平台下使用QJson解析和构建JSON字符串

Delphi用QJSON解析JSON格式的数据

在Qt中如何通过QJson 解析json数据

QT使用QJson生成解析Json数据的方法

在mac上使用Android Studio遇到的一些问题

封装QtCore(这非Qt项目里使用QString,QJson,QFileInfo,QFile等类)