0
好的,我發現了一些我不明白的東西。我正在使用QtNetworkManager向Web服務發出請求。出於某種原因,我似乎無法直接從網絡響應轉到jsondoc,我必須將其轉換爲字符串,然後返回到uft8中?Qt使用網絡響應二進制解析json
void WebAPIengine::handleNetworkData(QNetworkReply *networkReply)
{
//No network error
if (!networkReply->error()){
//Cast to string
QString strReply = (QString)networkReply->readAll();
//This works, jsonDoc will have the json response from webpage
QJsonDocument jsonDoc = QJsonDocument::fromJson(strReply.toUtf8());
//This doesn't work, networkReply->readAll() is said to return a QByteArray.
QJsonDocument jsonDoc2 = QJsonDocument::fromBinaryData(networkReply->readAll());
QJsonObject jsonObj = jsonDoc.object();
data = jsonObj;
}
//Network error
else{
data["Error"] = "WebAPIengine::handleNetworkData()";
}
現在我不明白爲什麼jsonDoc工作和jsonDoc2不是。有人可以解釋嗎?
好吧,看起來我在閱讀我的調試器時出錯。這一直在工作,看起來我沒有正確地提取信息。去編輯後安靜了一下。 – Dave851 2014-10-18 06:26:05
並沒有什麼,只是跑了所有的json [「xx」]。isXXX(),並設法弄清楚如何讀回數據。 – Dave851 2014-10-18 06:32:57
好的。很高興知道您修復了它。 – nnb 2014-10-18 06:34:24