2012-06-05 37 views
-2

我是Facebook Developer新手。我想用Facebook API创建Mac OSX应用程序。当我要求FQL和返回我JSON数据只有象下面这样:Objective C,NSDictionary循环遍历每个对象

我的代码:

[self.result_text setString:[NSString stringWithFormat:@"%@",[result objectForKey: @"result"]]; 

它显示:

[{"name":"My Name","first_name":"My First Name","last_name":"My Last Name"}] 

我想读这本词典里的对象。示例我只想显示“我的名字”字符串。但我不知道如何去做。

感谢,

回答

1

您可以使用JSONKit改造JSON字符串翻译成字典:

NSDictionary *resultsDictionary = [resultString 
     objectFromJSONStringWithParseOptions:JKParseOptionLooseUnicode|JKParseOptionValidFlags error:&err]; 

NSString* name = [resultDictionary objectForKey:@"name"]; 

JSONKit使用起来很简单,并且使您的应用程序也可以在较旧的SDK版本上运行。

+1

哦,有一件事我只注意到...原来海报谈论一个MacOS X的应用程序,而不是iOS的(如iOS版4和iOS 5)。 –

+0

@Michael Dautermann:你是对的;我只检查了操作系统的标签...将编辑我的答案。 – sergio

1

您可以通过Lion的全新NSJSONSerialization class(为您链接的文档)将服务器中的JSON内容解析为NSDictionary对象。

例如

NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData: [self.result_text dataUsingEncoding: NSUTF8StringEncoding] options: nil error: &error]; 

而一旦你在NSDictionary中的对象有它,它很容易做这样的事情:

NSString * myLastNameContent = [jsonDictionary objectForKey: @"last_name"]; 

Sergio的答案(这是他不断的编辑,甚至在我键入:-)也很好。 +1给他。

3

正如Ashley Mills写的,你应该检查文档。你可以通过所有字典键这样的循环:

for (NSString *key in [dictionary allKeys]) { 
    //do what you want to do with items 
    NSLog(@"%@", [dictionary objectForKey:key]); 
} 

希望它可以帮助

+0

这对于通过带有NSNumber键的字典循环也是必需的,即对于([字典allKeys]中的(NSNumber *键)){ – VagueExplanation