Попытка разобрать сложный JSON из Instagram с помощью AFNetworking. Сводит меня с ума

Анализ простого JSON с помощью AFNetworking хорошо документирован и кажется очень простым. То, что я пытаюсь сделать, это проанализировать JSON из Instagram, который находится на многих уровнях в массиве, где я могу извлекать изображения и вставлять их в CollectionView. Прямо сейчас я застрял. Мой простой код возвращает все в одном текстовом блоке, а совсем не то, что мне нужно. То, что я пытаюсь захватить, обведено красным. Если я возьму 10 изображений, я действительно хочу, чтобы все они были в массиве. В этот момент я могу получить фактические изображения и отобразить их. Прямо сейчас я застрял.

Найдите все изображения с тегом Snow: https://api.instagram.com/v1/tags/snow/media/recent?access_token=836379.f59def8.fd07b9ba8ea440188dc56d2763bbf6c2

введите здесь описание изображения

Код, который просто возвращает строку имен изображений, что мне совсем не нужно.

-(void)viewDidLoad {

  NSLog(@">>> Entering %s <<<", __PRETTY_FUNCTION__);

  [super viewDidLoad];

  NSString *path = @"https://api.instagram.com/v1/tags/snow/media/recent?access_token=836379.f59def8.fd07b9ba8ea440188dc56d2763bbf6c2";

  NSLog(@"path %@", path);

  NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:path]];

  AFJSONRequestOperation *operation =
  [AFJSONRequestOperation JSONRequestOperationWithRequest:request
                                                  success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {

                                                    NSString *image = [[[[JSON valueForKey:@"data"]valueForKey:@"images"]valueForKey:@"low_resolution"]valueForKey:@"url"];

                                                    NSLog(@"%@", image);


                                                  } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON){
                                                    // NSLog(@"There was a problem: %@", [error localizedDescription]);
                                                  }];

  [operation start];

  //NSDictionary *dict = [imagesArry objectAtIndex:0];
}

Вот что я получаю:

Просто кажется, что я не подхожу к этому правильно, неужели все так просто? Одна строка захватывает все ссылки на мои изображения в Instagram? Хмммм, похоже, что они разделены ",". Может ли это быть так просто?

NSString *image = [[[[JSON valueForKey:@"data"]valueForKey:@"images"]valueForKey:@"low_resolution"]valueForKey:@"url"];

ОБНОВИТЬ:

Хорошо, почти. Это немного странно, кажется очень прямолинейным, пытаясь разбить массив на "," но я уверен, что работаю над строкой:

NSArray *listItems = [компоненты изображенияSeparatedByString:@","];

ОШИБКА: Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «-[__NSArrayI componentsSeparatedByString:]: нераспознанный селектор отправлен экземпляру 0x8b84710»

Спасибо Hot Licks. То, что я говорю, что это NSTRING, означает пшик. Я действительно возвращаю массив.


person Edward Potter    schedule 28.10.2013    source источник
comment
На самом деле, вы уверены, что не получаете все элементы? Как выглядит все в одном текстовом блоке? Если это _1_, это массив всех URL-адресов.   -  person Hot Licks    schedule 29.10.2013
comment
Хорошо, почти. Это немного странно, кажется очень прямолинейным, пытаясь разбить массив на ,, но я уверен, что работаю над строкой:   -  person Hot Licks    schedule 29.10.2013
comment
Нет, у вас есть NSArray, который вы ошибочно вставили в указатель NSString. Это будет NSLog, как я описал. Назначьте его NSArray и проиндексируйте, и вы увидите. Или сделайте _1_.   -  person Edward Potter    schedule 29.10.2013
comment
NSLog(@"Class name is %s", object_getClassName(image)); говорит вам, что у вас есть массив, а не строка.   -  person Hot Licks    schedule 29.10.2013
comment
Хорошо, это имеет смысл. Я пытаюсь пометить это как решенное. Но галочка не появляется.   -  person Hot Licks    schedule 29.10.2013
comment
Вы не можете пометить комментарий как решение. Если хотите, введите свой собственный ответ, объяснив, что вы нашли, и, по истечении необходимого периода ожидания, отметьте его как ответ.   -  person Edward Potter    schedule 31.10.2013
comment
Решено. Пытался заставить массив как строку.   -  person Hot Licks    schedule 31.10.2013


Ответы (1)


Так чего ты хочешь? (Если вы хотите, чтобы все элементы в массиве данных, как мне кажется, вы должны запросить все элементы.)

person Edward Potter    schedule 06.11.2013