2016-04-10 8 views
5

Utilizzo il framework Afnetworking nel mio progetto ma sto ottenendo la risposta in formato stringa. Voglio ottenere il valore di "dati" nella risposta qui sotto -Risposta del servizio Web in stringa Formato

"{\"Result\":\"Success\",\"Data\":\"intro-1898-1449000428650.mp4\"}" 

Ho usato il codice qui sotto:

[Helper PostWebServiceRequest:kIntrovideo InputParameters:parameters competion:^(BOOL result, NSDictionary *response) { 
    if (result){ 
     NSLog(@"response : %@",response); 

     NSString *data= [NSString stringWithFormat:@"%@",response ]; 

     NSError *jsonError; 
     NSData *objectData = [data dataUsingEncoding:NSUTF8StringEncoding]; 
     NSDictionary *json = [NSJSONSerialization JSONObjectWithData:objectData options:NSJSONReadingMutableContainers error:&jsonError]; 

risposta

3

poiché l'oggetto risposta sembra essere una matrice e non (come indicato) un dizionario, provare quanto segue:

NSString *jsonString = ((NSArray *)response).firstObject; 
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 
NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil]; 
NSString *data = jsonObject[@"Data"]; 
+0

ciao scusa per aver risposto tardi. ho usato come hai menzionato, ma l'app si blocca e l'errore è il seguente: [__ NSCFArray objectForKeyedSubscript:]: selettore non riconosciuto inviato all'istanza 0x787c4c90 2016-04-11 03: 00: 07.512 StaffingEvolution [1789: 129588] ** * Terminazione dell'app a causa dell'eccezione non rilevata 'NSInvalidArgumentException', motivo: '- [__ NSCFArray objectForKeyedSubscript:]: selettore non riconosciuto inviato all'istanza 0x787c4c90' –

+0

quindi 'response' è un array e non un dizionario come indicato nel codice? –

+0

perché nel formato stringa –

0

non sono sicuro, ma sembra che il server non può passare oggetti in JSON, è dovrebbe passare link per mettere da dove è possibile scaricare i dati.