如何从NSdictionary获得关键值 - iphone sdk

时间:2010-02-15 15:12:00

标签: iphone json nsdictionary

我使用了一个api,它提供了来自网络的数据。数据采用Json格式,存储在NSDictionary中。像这样:

SBJSON *parser = [[SBJSON alloc] init];
dict = [[NSDictionary alloc]init];
dict = [parser objectWithString:jsonArray error:nil];

Ggb 控制台结果: po dict

        1262 =             {
            "feed_name" = name1;
            "new_results" = 6;
            "next_update" = "2010-02-16T15:22:11+01:00";
        };
        1993 =             {
            "feed_name" = name2;
            "new_results" = 0;
            "next_update" = "2010-02-16T09:09:00+01:00";
        };

如何访问值“1262”和“1993”并将它们放在NSArray中,以便用于UITableView

非常感谢, 问候, 巴特

2 个答案:

答案 0 :(得分:5)

首先,SBJSON的objectWithString:error:方法将返回以下其中一个,具体取决于JSON消息中的根对象:

  • 的NSArray
  • 的NSDictionary

所以,除非你知道将在JSON中返回什么,否则你不应该总是假设它会返回一个字典。

其次,你要分配一个新的NSDictionary对象,然后将解析器的结果分配给你的dict变量,泄漏先前分配的字典。 您不需要这一行:dict = [[NSDictionary alloc]init];

最后,由于返回的对象一个字典,你可以像这样从字典中获取对象:

for (NSString *key in [dict allKeys])
{
    NSDictionary *feed = [dict objectForKey:key];

    //do stuff with feed.
}

答案 1 :(得分:4)

return [dict allKeys];