我从QT开始,这是一场噩梦,要从php获取数据(发送mysql结果)
PHP方面:
...
$rs = mysql_query( $sql );
while ($row = mysql_fetch_assoc($rs)) {
$result[] = $row;
}
echo json_encode(array('code'=>'OK', 'result' => $result));
女巫给出以下结果:
{"code":"OK","result":
[{"CCMGD_HOUR":"19980","CCMGD_DAY":"3"},
{"CCMGD_HOUR":"32400","CCMGD_DAY":"3"},
{"CCMGD_HOUR":"71100","CCMGD_DAY":"3"},
{"CCMGD_HOUR":"71700","CCMGD_DAY":"3"},
{"CCMGD_HOUR":"72000","CCMGD_DAY":"3"}]}
现在,QT端:
...
QNetworkReply* reply;
QString data = (QString) reply->readAll();
QJsonDocument d = QJsonDocument::fromJson(data.toUtf8());
QJsonObject jo = d.object();
QVariantHash hash = jo.toVariantHash();
QVariantList list = hash.value("result").toList();
但是之后 ???如果我擅长这一点,如何遍历遍历的行并提取键(CCMGD_HOUR和CCMGD_DAY)?
我发现如何迭代:
foreach(const QVariant &item, result){
...//but item has 2 items for the row:
[0]
key "CCMGD_HOUR"
value "19980"
[1]
key "CCMGD_DAY"
value "3"
how to extract this ?
}
谢谢 !
要从Json中提取值,请尝试以下操作
QJsonDocument document = QJsonDocument::fromJson(reply->readAll());
QJsonObject jo = document.object();
foreach (const QJSonValue& value, jo["result"].toArray()) {
QJsonObject obj = value.toObject();
qDebug() << "CCMGD_HOUR: " << obj["CCMGD_HOUR"].toInt();
qDebug() << "CCMGD_DAY: " << obj["CCMGD_DAY"].toInt();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句