- QByteArray bytes = reply->readAll(); //获取字节
QJsonParseError json_error; QJsonDocument jsonDoc(QJsonDocument::fromJson(bytes, &json_error)); //格式化字符串 QString str_json(jsonDoc.toJson(QJsonDocument::Indented)); ui->textBrowser->setText(str_json);
第一种: - QVariantMap dataList=jsonDoc.toVariant().toMap();
// 提取第一层[] foreach(QVariant data, dataList["trResult"].toList()) {
qDebug()<<"data对应>>"<<data.toMap(); //提取第二层 foreach(QVariant data2, data.toList()) { QVariantMap linkMap2 = data2.toMap();
QString src=linkMap2["src"].toString(); qDebug()<<"src对应》》"<<src; //歌曲名 QString tgt=linkMap2["tgt"].toString(); qDebug()<<src<<"对应是"<<tgt; // ui->textEdit->setText(tgt); }
}
第二种方式: - QJsonObject rootObj = jsonDoc.object();
QJsonArray array = rootObj.value("teResult").toArray(); //第一层
foreach(QVariant data, array.toVariantList()) { qDebug()<<"data对应》》"<<data; //第二层
foreach(QVariant data2, data.toList()) { QVariantMap linkMap2 = data2.toMap();
QString src=linkMap2["src"].toString(); qDebug()<<"src对应》》"<<src; //歌曲名 QString tgt=linkMap2["tgt"].toString(); qDebug()<<src<<"对应的是"<<tgt; // ui->textEdit->setText(tgt); } }
|