2015-03-10 4 views
0

У меня есть словарь значений сыновей, но я не могу найти более одного значения. Я новичок в этом, и я уверен, что я просто что-то забыл или не ошибся.iOS AFNetworking & Json Data

Это JSON данные я получаю в консоли:

`2015-03-10 16:41:46.693 Json[8118:629760] https://outpan-images.s3.amazonaws.com/igq8ev0-9780785265740.jpg 
2015-03-10 16:41:46.694 Json[8118:629760] { 
    attributes =  { 
     "Author(s)" = "John Eldredge"; 
     Format = Paperback; 
     "ISBN-10" = 0785265740; 
     "Page Count" = 288; 
     "Publication Date" = "April 2002"; 
     Publisher = "Nelson, Thomas, Inc."; 
    }; 
    barcode = 9780785265740; 
    images =  (
     "https://outpan-images.s3.amazonaws.com/igq8ev0-9780785265740.jpg" 
    ); 
    name = "Wild at Heart Field Manual: A Personal Guide to Discover the Secret of Your Masculine Soul"; 
    "outpan_url" = "http://www.outpan.com/view_product.php?barcode=9780785265740"; 
    videos =  (
    ); 
} 

это код, в котором я пытаюсь получить данные, - я могу получить ответ, если я прошу только одно - но, когда Я пытаюсь получить несколько значений, это sigbrt Я пытаюсь получить URL-адрес изображений, имя и штрих-код.

#import "ViewController.h" 
#import "AFNetworking.h" 
static NSString * const BaseURLString =  @"http://www.outpan.com/api/get-product.php?barcode=9780785265740&apikey=bbb053368784fed4f89d37f5fbabcf4"; 

...

- (IBAction)showJson:(id)sender { 



// 1 
NSString *string = BaseURLString; 
NSURL *url = [NSURL URLWithString:string]; 
NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

// 2 
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; 
operation.responseSerializer = [AFJSONResponseSerializer serializer]; 

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { 

    // 3 
    NSDictionary *dic = (NSDictionary *)responseObject; 
    NSArray *imagesUrl = [dic objectForKey:@"images"]; 
    NSString *imagesUrlString = [imagesUrl objectAtIndex:0]; 
     NSLog(@"%@", imagesUrlString); 
    NSLog(@"%@", responseObject); 

//this crashes - 
// NSArray *bookName = [dic objectForKey:@"name"]; 
    // NSString *bookNameString = [bookName objectAtIndex:0]; 
    // NSLog(@"%@", bookNameString); 
    // NSLog(@"%@", responseObject); 

} 



failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

    // 4 
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error Retrieving Weather" 
                 message: [error localizedDescription] 
                 delegate:nil 
               cancelButtonTitle:@"Ok" 
               otherButtonTitles:nil]; 
    [alertView show]; 
}]; 

// 5 
[operation start]; 


} 
@end 
+1

Итак, где есть сообщение об исключении и трассировка стека исключений? –

ответ

0

Это код, который работает для меня.

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
[manager GET:@"http://www.outpan.com/api/get-product.php?barcode=9780785265740&apikey=2bbb053368784fed4f89d37f5fbabcf4" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"JSON: %@", responseObject); 
    NSDictionary *aDict = (NSDictionary*)responseObject; 
    NSLog(@" name %@",[aDict objectForKey:@"name"]); 
    NSLog(@" images %@",[aDict objectForKey:@"images"]); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 

И это консоль, которую я получаю.

2015-03-11 04:39:43.038 del[49323:3297516] name Wild at Heart Field Manual: A Personal Guide to Discover the Secret of Your Masculine Soul 
2015-03-11 04:39:43.038 del[49323:3297516] images (
    "https://outpan-images.s3.amazonaws.com/igq8ev0-9780785265740.jpg" 
) 
+0

спасибо! У меня была информация все время, я просто не знал, как получить к ней доступ. – ClayD

+0

@ ClayD Рад помочь. Счастливое кодирование. : D –

Смежные вопросы