Iphone 从TouchJSON反序列化NSDictionary中的对象?
我似乎不知道如何从TouchJSON返回的字典中获取表示对象的字典 例如: 如果我使用以下格式的JSON: 我如何获得一条id=x的tweet,而不必使用“for”语句将所有tweet拉入一个数组 e、 g.不必这样做。。。因为我知道我想要访问的对象的“id”(JSON键,而不是索引)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
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拉入一个数组?”