Десериализовать объект из NSDictionary из TouchJSON? - PullRequest
0 голосов
/ 07 июля 2010

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

Например:

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

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

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

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

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

 }

Ответы [ 2 ]

1 голос
/ 12 июля 2010

Вы можете использовать NSPredicate, чтобы отфильтровать массив твитов следующим образом:

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

NSDictionary* tweet = [filtered lastObject];
0 голосов
/ 17 июля 2010

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

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

...