查看完整版本: [-- Qt5 HTTP请求JSON数据及解析测试代码 --]

QTCN开发网 -> Qt代码秀 -> Qt5 HTTP请求JSON数据及解析测试代码 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

XChinux 2013-03-16 09:59

Qt5 HTTP请求JSON数据及解析测试代码


  1.     QNetworkAccessManager manager;
        QNetworkRequest req;
        req.setUrl(QUrl("http://localhost:52280/?c=base&a=invlist"));
        req.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
        QNetworkReply *reply = manager.post(req, QByteArray("{}"));
        QEventLoop ev;
        connect(reply, SIGNAL(finished()), &ev, SLOT(quit()));
        ev.exec(QEventLoop::ExcludeUserInputEvents);
        if (reply->error() == QNetworkReply::NoError)
        {
            QByteArray ba = reply->readAll();
            QJsonParseError jsonpe;
            QJsonDocument json = QJsonDocument::fromJson(ba, &jsonpe);
            if (jsonpe.error == QJsonParseError::NoError)
            {
                if (json.isObject())
                {
                    QJsonObject obj = json.object();
                    if (obj.contains("error"))
                    {
                        qDebug() << "error:" << obj["error"];
                    }
                    else
                    {
                        QJsonArray jarray = obj["invlist"].toArray();
                        for (int row = 0; row < jarray.size(); row++)
                        {
                            qDebug() << "====Row[" << row << "] Start===================";
                            QJsonObject jobj = jarray[row].toObject();
                            for (QJsonObject::Iterator it = jobj.begin();
                                 it != jobj.end(); it++)
                            {
                                qDebug() << it.key() << " => " << it.value();
                            }
                        }
                    }
                }
                else
                {
                    qDebug() << "error, shoud json object";
                }
            }
            else
            {
                qDebug() << "error:" << jsonpe.errorString();
            }
        }
        else
        {
            qDebug() << "error:" << reply->errorString();
        }

jeffreylee 2013-03-16 16:21
正需要这个,还没来得及看文档,先看你的例程了,以前Qt解析json用的是一个个人开发的QJson类,现在Qt5自身支持了,方便多了。

aqitata817 2013-03-23 10:58
尽量用官方的库,看看学习!

调味料来了 2013-12-10 12:05
最近正要用到这个  希望楼主教教啊 QQ392139105 谢谢了!

lengyuehui 2014-02-08 09:50
神人呀!
正在找这样的资源!
楼主可不可以做个demo上传一下供大家下载呀!


查看完整版本: [-- Qt5 HTTP请求JSON数据及解析测试代码 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled