I'm developing an app that needs to send request to web service and obtain JSON for the next process. I'm using AFNetworking for the request. Following is my PHP code
$data = array( array( 'userID' => 'xxx' ) ); echo json_encode($data); I've already verified the above code, and the result printed is fine.
[{"userID":"xxx"}] Then, I use AFNetworking to send a request for this Json data as below
NSDictionary *parameters = @{@"action": @"verifyUDID", @"UDID": udid}; AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] init]; [manager POST:@"http://roommateradar.com/RoommateRadarAPI.php" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) { NSLog(@"%@",responseObject); NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil]; } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error: %@", error); }]; The NSLog is correctly show the JSON data, but the next line which is parsing JSON to NSDictionary will cause a crash, the output is like below
2014-04-10 21:59:56.893 RoommateRadar[2941:60b] ( { userID = xxx; } ) 2014-04-10 21:59:56.893 RoommateRadar[2941:60b] -[__NSCFArray bytes]: unrecognized selector sent to instance 0x1493e660 2014-04-10 21:59:56.895 RoommateRadar[2941:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFArray bytes]: unrecognized selector sent to instance 0x1493e660' So you can see that the NSLog(@"%@",responseObject); is actually showing correct thing. BTW, I also tried
[NSJSONSerialization isValidJSONObject:responseObject]; to verify the responseObject, the result is also valid.
Any little help?