From 925b31659cb9031514abe20705c2dd65e23e54f1 Mon Sep 17 00:00:00 2001 From: ericmenezesn@gmail.com Date: Wed, 13 Aug 2014 12:36:57 -0300 Subject: [PATCH] Campo 'Reply' do Json de retorno do metodo de comm recebendo tanto xml quanto objeto json --- cacic-teste/testcacic.cpp | 4 ++-- src/cacic_comm.h | 8 ++++++-- src/ccacic.cpp | 7 ++++++- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/cacic-teste/testcacic.cpp b/cacic-teste/testcacic.cpp index bf926a2..d427a57 100644 --- a/cacic-teste/testcacic.cpp +++ b/cacic-teste/testcacic.cpp @@ -100,10 +100,10 @@ void CTestCacic::testJsonValueFromJsonString() void CTestCacic::testLogin(){ QJsonObject jsonReply = OCacicComm.login(); -// QJsonValue sessionvalue = OCacic.jsonValueFromJsonString(json["reply"].toString(), "session"); QJsonValue sessionvalue = jsonReply["reply"]; +// qDebug() << sessionvalue.toObject()["session"].toString(); // qDebug() << sessionvalue.toString(); - QVERIFY(!sessionvalue.isNull()); + QVERIFY(sessionvalue.isObject()); } void CTestCacic::testSslConnection() diff --git a/src/cacic_comm.h b/src/cacic_comm.h index 2ecc8cf..8156044 100644 --- a/src/cacic_comm.h +++ b/src/cacic_comm.h @@ -99,8 +99,12 @@ public: if (reply->error() == QNetworkReply::NoError) { //se não houver erro, grava o retorno; - strReply = (QString)reply->readAll(); - jsonObj["reply"] = strReply; + QVariant replyVariant = reply->readAll(); + QJsonDocument replyDocument = QJsonDocument::fromJson(replyVariant.toByteArray()); + jsonObj["reply"] = (!replyDocument.isNull()) ? + replyDocument.object() : + QJsonValue::fromVariant(replyVariant.toString()); +// qDebug() << "Response:" << jsonObj["reply"]; // qDebug() << "Response:" << strReply; delete reply; diff --git a/src/ccacic.cpp b/src/ccacic.cpp index 257f44c..e3b963e 100644 --- a/src/ccacic.cpp +++ b/src/ccacic.cpp @@ -102,7 +102,12 @@ bool CCacic::deleteFile(QString path) else return true; } - +/*jsonValueFromJsonString + * Pega valor da chave desejada em um json em string; + * @parameter QString json: json onde será feita a busca; + * @parameter QString key: chave onde será pego o json; + * @return QJsonValue: valor solicitado; + */ QJsonValue CCacic::jsonValueFromJsonString(QString json, QString key) { return QJsonDocument::fromJson(json.toUtf8()).object()[key]; -- libgit2 0.21.2