Objective C,NSDictionary循环遍历每个对象

时间:2012-06-05 11:11:45

标签: objective-c cocoa facebook-graph-api xcode4 nsdictionary

我是Facebook Developer的新手。我想使用Facebook API创建Mac OSX应用程序。当我请求FQL时,它只返回JSON数据,如下所示:

我的代码:

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

显示:

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

我想阅读这个词典中的对象。示例我只想显示“我的名字”字符串。但我不知道怎么做。

谢谢,

4 个答案:

答案 0 :(得分:3)

正如Ashley Mills所写,你应该查看文档。您可以循环遍历所有字典键,如下所示:

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

希望有所帮助

答案 1 :(得分:1)

您可以使用JSONKit将JSON字符串转换为字典:

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

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

JSONKit易于使用,并且可以使您的应用程序也适用于较旧的SDK版本。

答案 2 :(得分:1)

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

e.g。

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

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

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

塞尔吉奥的回答(他一直在编辑,即使我输入:-)也非常好。 +1给他。

答案 3 :(得分:0)

您应该在此处阅读NSDictionary的文档:

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsdictionary_Class/Reference/Reference.html

特别是标题为访问键和值

的部分