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

Iphone 从TouchJSON反序列化NSDictionary中的对象?,iphone,json,nsdictionary,touchjson,Iphone,Json,Nsdictionary,Touchjson,我似乎不知道如何从TouchJSON返回的字典中获取表示对象的字典 例如: 如果我使用以下格式的JSON: 我如何获得一条id=x的tweet,而不必使用“for”语句将所有tweet拉入一个数组 e、 g.不必这样做。。。因为我知道我想要访问的对象的“id”(JSON键,而不是索引) NSArray *tweetsArray = [resultsDictionary objectForKey:@"results"]; for (NSDictionary *tweetDictionary i

我似乎不知道如何从TouchJSON返回的字典中获取表示对象的字典

例如:

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

我如何获得一条id=x的tweet,而不必使用“for”语句将所有tweet拉入一个数组

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

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

 }

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

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

NSDictionary* tweet = [filtered lastObject];

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


只有在id=x条件下访问JSON时,这才是更好的解决方案。

示例代码有什么问题?你可以自己尝试解析JSON字符串,但我不确定你想要实现什么。好吧,我真的不想浪费资源,在我确切知道我要查找的“results”节点的哪个子节点时,将整个字符串解析成一个数组。我想会有一个更简单的方法?这回答了你的问题吗?然后请标记为已回答。或者我误解了吗?我不知道FilteredarrayingPredicate:do到底是什么,但我认为它仍然必须以某种方式在数组上循环,而且对提问者来说,这看起来像是一个性能问题。再看一次这个问题:“我如何获得一条id=x的tweet,而不必使用“for”语句将所有tweet拉入一个数组?”