AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; [manager GET:@"http://example.com/resources.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"JSON: %@", responseObject); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }];
C'est la manière recommandée d'envoyer une requête GET
dans AFNetworking 2.0. Je veux get la valeur d'une key spécifique dans le json, donc je veux utiliser responseObject
comme NSDictionary
. c'est ce que j'essayais:
NSError *jsonError = nil; NSDictionary *json = [NSJSONSerialization JSONObjectWithData:(NSData *)responseObject options:kNilOptions error:&jsonError];
ça n'a pas marché:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary bytes]: unrecognized selector sent to instance 0xa048120'
comment puis-je get la valeur d'une key spécifique dans responseObject
?
Par défaut, AFHTTPRequestOperationManager
responseSerializer
à une instance AFJSONResponseSerializer
, donc responseObject
est déjà votre JSON analysé (dans votre cas, ce sera un NSDictionary
selon ce que vous avez dit).
Ensuite, utilisez-le comme si vous utilisiez un dictionary:
NSSsortingng *value = responseObject[@"someKey"];
L'object de réponse est déjà un dictionary! AFNetworking a géré cela pour vous.