template<typename InputIterator> void set( InputIterator begin, InputIterator end ) { string strJson( begin, end) ; json_error_t error ; json_t* v = json_loads(strJson.c_str(), 0, &error) ; if( !v ) { cerr << "JsonMsg::set - " << error.text << " at line " << error.line << ", column " << error.column << endl ; throw std::runtime_error(error.text) ; } m_value = v ; }
// callback vastaukselle void CommInterfaceJson::dataReceived( QNetworkReply *reply ) { // etsitään oikea paketti ResponseData rData; for (int i = 0; i < mReplyVector.size(); ++i) { if (mReplyVector.at( i ).response == reply) { rData = mReplyVector.at(i); mReplyVector.erase(mReplyVector.begin() + i); break; } } // tarkistetaan paketin eheys if (reply->error() == QNetworkReply::NoError) { // vastauksen parsiminen QByteArray bytes = reply->readAll(); QJsonParseError err; QJsonDocument doc = QJsonDocument::fromJson( bytes, &err ); switch (rData.function) { case GW_GET_ACCOUNT: QString strJson(doc.toJson(QJsonDocument::Compact)); mMainwindow->debug(strJson); break; } } // jotakin tapahtui else { QString e = reply->errorString(); mMainwindow->debug(e); } // tuhotaan vastaus reply->deleteLater(); }