从TouchJSON反序列化NSDictionary中的对象?

时间:2010-07-07 03:18:54

标签: iphone json nsdictionary touchjson

我似乎无法弄清楚如何从TouchJSON返回的字典中获取表示对象的Dictionary。

例如:

如果我使用以下格式的JSON:

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

如何使用“for”声明获取带有“id”= x的推文,而不必使用“for”语句将所有推文拉入数组?

e.g。不必这样做...因为我知道我想要访问的对象的“id”(JSON键,而不是索引)

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

 }

2 个答案:

答案 0 :(得分:1)

您可以使用NSPredicate过滤tweetsArray,如下所示:

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

NSDictionary* tweet = [filtered lastObject];

答案 1 :(得分:0)

为什么在解析JSON时不过滤id = x条件。这将确保您只遍历一次JSON数据。

如果您只需要为id = x条件访问JSON,那么这只是一个更好的解决方案。