Десериализовать объект из 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.