2010-07-07 2 views
0

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

Например:

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

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

Как бы я чирикать с «ID» = х без необходимости тянуть все из твиты в массив с использованием инструкции «for»?

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

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

} 
+0

Что случилось с вашим примером кода? Вы можете попытаться самостоятельно проанализировать строку JSON, но я не уверен, чего вы пытаетесь достичь. –

+0

Ну, я действительно не хочу тратить ресурсы на синтаксический анализ всей строки в массив, когда я точно знаю, какой дочерний узел «результатов» я ищу. Я предположил, что будет более простой способ? –

ответ

1

Вы можете использовать NSPredicate фильтровать tweetsArray так:

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

NSDictionary* tweet = [filtered lastObject]; 
+0

Это ответ на ваш вопрос ?, затем, пожалуйста, отметьте как ответ. Или я его неправильно понял? – tonklon

+1

Я не знаю, что именно filterArrayUsingPredicate: do, но я думаю, что все равно придется перебирать массив каким-то образом, и это похоже на проблему с производительностью. Взгляните на вопрос еще раз: «Как я могу получить твит с« id »= x без необходимости вытаскивать все твиты в массив с помощью инструкции« для »?» – vodkhang

0

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

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