Возвращение NSString вместо NSDictionary
Я использую метод для вызова веб-служб и загрузки аудио файла транскрипции на сервер. Метод заключается в следующем:
- (NSDictionary *)UploadTranscriptionAudio:(NSString *)uploadfor forPN_ID:(NSString
*)pn_id forTaskFlag:(NSString *)taskflag documentPath:(NSString *)documentpath
forUserName:(NSString *)username file_path_msd:(NSString *)file_path_msd
audioFilePath:(NSString *)audiofilepath{
NSDictionary *response = nil;
NSURL * url = [NSURL URLWithString:[AppDelegate sharedInstance].str_webServiceUrl];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:uploadfor forKey:@"Uploadfor"];
[request setPostValue:pn_id forKey:@"PNID"];
[request setPostValue:taskflag forKey:@"task_flag"];
[request setPostValue:documentpath forKey:@"Path"];
[request setPostValue:username forKey:@"Username"];
[request setPostValue:file_path_msd forKey:@"file_path_msd"];
[request setFile:audiofilepath forKey:@"uploadedfile"];
[request startSynchronous];
NSError *error = [request error];
if (!error) {
response = (NSDictionary*)[request responseString];
NSLog(@"Response = %@",response);
return response;
}
return response;
}
Этот метод все еще возвращает мне NSstring в ответ. Я хочу, чтобы этот метод возвращал мне NSDictionary. Как я должен использовать значение для ключей внутри этого словаря где-то еще. Может ли кто-нибудь помочь мне в этом.
2 ответа
Решение
Привет Шихер Мэдди говорит, что правильно ню можно разобрать строку следующим образом
if (responseString == NULL) {
// do something u want
} else {
NSDictionary *jsonResponse = [responseString JSONValue];
NSLog(@" %@",jsonResponse);
}
На вашем месте я бы использовал SBJSONParser следующим образом:
SBJsonParser *parser= [[SBJsonParser alloc] init];
NSDictionary *dictionnary = [parser objectWithString:responseString error:nil];