int QDropboxJson::parseSubJson(QString strJson, int start, qdropboxjson_entry *jsonEntry) { int openBrackets = 1; QString buffer = ""; QDropboxJson* jsonValue = NULL; int j; for(j=start+1; openBrackets > 0 && j < strJson.size(); ++j) { if(strJson.at(j).toLatin1() == '{') openBrackets++; else if(strJson.at(j).toLatin1() == '}') openBrackets--; } buffer = strJson.mid(start, j-start); #ifdef QTDROPBOX_DEBUG qDebug() << "brackets = " << openBrackets << endl; qDebug() << "json data(" << start << ":" << j-start << ") = " << buffer << endl; #endif jsonValue = new QDropboxJson(); jsonValue->parseString(buffer); // invalid sub json means invalid json if(!jsonValue->isValid()) { #ifdef QTDROPBOX_DEBUG qDebug() << "subjson invalid!" << endl; #endif valid = false; return j; } // insert new jsonEntry->value.json = jsonValue; jsonEntry->type = QDROPBOXJSON_TYPE_JSON; return j; }
void QDropbox::parseAccountInfo(QString response) { #ifdef QTDROPBOX_DEBUG qDebug() << "== account info ==" << response << "== account info end =="; #endif QDropboxJson json; json.parseString(response); _tempJson.parseString(response); if(!json.isValid()) { errorState = QDropbox::APIError; errorText = "Dropbox API did not send correct answer for account information."; #ifdef QTDROPBOX_DEBUG qDebug() << "error: " << errorText << endl; #endif emit errorOccured(errorState); return; } emit accountInfoReceived(response); return; }
void QDropbox::parseDelta(QString response) { #ifdef QTDROPBOX_DEBUG qDebug() << "== metadata ==" << response << "== metadata end =="; #endif QDropboxJson json; json.parseString(response); _tempJson.parseString(response); if(!json.isValid()) { errorState = QDropbox::APIError; errorText = "Dropbox API did not send correct answer for delta."; #ifdef QTDROPBOX_DEBUG qDebug() << "error: " << errorText << endl; #endif emit errorOccured(errorState); stopEventLoop(); return; } emit deltaReceived(response); return; }