QT get

QT get 获取数据

QString str_url("http://www.weather.com.cn/data/sk/");
            if (QString(this->lineEdit_no->text()) == "")
            {
                str_url = QString("http://www.weather.com.cn/data/sk/") + QString("101010100.html");
            }
            else
            {
                str_url = QString("http://www.weather.com.cn/data/sk/") + QString(this->lineEdit_no->text()) + QString(".html");
            }
            qDebug() << "ur=" << str_url;

            qDebug() << str; 
            this->label->setText(str); 
            QNetworkAccessManager *netWork = new QNetworkAccessManager(this->tab_home);
            QUrl url("");

            QNetworkRequest *re = new QNetworkRequest();
            re->setUrl(str_url);
            QNetworkReply *reply= netWork->get(*re);
            QObject::connect(reply, &QNetworkReply::finished, [this,reply]() 
            {
                QJsonObject json0;
                json0.insert("da", "100");
                json0.insert("xiao", "0.01");
                QJsonDocument doc;
                doc.setObject(json0);
                QByteArray json_array = doc.toJson(QJsonDocument::Compact);

                QString json = reply->readAll();
                //this->textBrowser->setText(json); 

                QJsonParseError json_error;
                QJsonDocument d =QJsonDocument::fromJson(json.toUtf8(),&json_error);
                qDebug() << "json:"<<json;
                if (json_error.error == QJsonParseError::NoError)
                {
                    qDebug() << "No errors";
                    if (d.isObject())
                    {
                        qDebug() << "d is objrcts";
                        QJsonObject sub0 = d.object();
                        if ( sub0.contains("weatherinfo"))
                        {

                            qDebug() << sub0.value("weatherinfo").toVariant();
                            QJsonObject sub1 = sub0.value("weatherinfo").toObject();

                            //qDebug() << sub1.take("city").toString();

                            this->lineEdit_age->setText(sub1.take("WD").toString());
                            this->lineEdit_name->setText((sub1.take("city").toString()));
                            qDebug() << "city" << sub1.value("city").toString();
                            this->lineEdit_company->setText(sub1.take("SD").toString());
                            this->lineEdit_sex->setText(sub1.take("rain").toString());
                            this->textBrowser->setText(sub1.take("njd").toString());
                        }
                    }
                }
posted @ 2018-01-18 19:54  dyigstraw  阅读(122)  评论(0编辑  收藏  举报
foot