Десериализовать объект из NSDictionary из TouchJSON?

Я не могу понять, как получить словарь, представляющий объект из словаря, который возвращает TouchJSON.

Например:

Если я использую JSON в формате здесь:

http://search.twitter.com/search.json?q=hello

Как бы получить твит с "id" = x без необходимости извлекать все твиты в массив, используя оператор "for"?

например, без необходимости делать это... так как я знаю "идентификатор" (ключ JSON, а не индекс) объекта, к которому я хочу получить доступ

NSArray *tweetsArray = [resultsDictionary objectForKey:@"results"];
 for (NSDictionary *tweetDictionary in tweetsArray) {
     NSString *tweetText = [tweetDictionary objectForKey:@"text"];
     [tweets addObject:tweetText];

 }

2 ответа

Вы можете использовать NSPredicate для фильтрации твитов:

NSArray *tweetsArray = [resultsDictionary objectForKey:@"results"];
NSArray* filtered = [test filteredArrayUsingPredicate:
                          [NSPredicate predicateWithFormat:@"id = %@",@"456"]];

NSDictionary* tweet = [filtered lastObject];

Почему бы вам не отфильтровать условие id=x при анализе JSON. Это гарантирует, что вы пройдете данные JSON только один раз.

Это может быть лучшим решением, если вам нужен доступ к JSON только для условия id=x.

Другие вопросы по тегам