来自JSON文件的iOS 6 NSDictionary

来自JSON文件的iOS 6 NSDictionary,ios,xcode,json,ios6,nsdictionary,Ios,Xcode,Json,Ios6,Nsdictionary,我正在使用故事板和主视图构建一个项目。我正试图从JSON文件中获取UITableView数据(我不知道这是否是正确的JSON,我是新手),所以我在viewDidLoad()中调用了这些方法 然后在connectiondFinishLoading:(NSURLConnection*)connection方法中,我称之为: [connection release] NSString *responseString = [[NSString alloc] initWithData:responseDa

我正在使用故事板和主视图构建一个项目。我正试图从JSON文件中获取
UITableView
数据(我不知道这是否是正确的JSON,我是新手),所以我在
viewDidLoad()中调用了这些方法

然后在
connectiondFinishLoading:(NSURLConnection*)connection
方法中,我称之为:

[connection release]
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[responseData release];
NSDictionary *topHitsDictionary = [responseString JSONValue];
NSArray *topHitsArray = [topHitsDictionary valueForKey:@"title"];
问题是(我想)我得到了这个错误:“没有找到实例方法'-JSONValue'。我已经查找了一段时间,我看到的所有教程都使用了这个方法。是iOS 6还是别的什么?谢谢

编辑:


如何将其添加到UITableView?我尝试了
cell.textlab.text=[self.topKpop objectAtIndex:indexPath.row]但我一直收到一个SIGABRT错误。我得到了SIGABRT错误,但这次它在.m文件中。

我认为教程使用了或类似的JSON解析器框架

如果您不想使用任何外部框架,可以尝试使用iOS 5.0以来提供的
NSJSONSerialization

[connection release]
NSError *jsonError = nil;
NSDictionary *topHitsDictionary = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&jsonError];
NSArray *topHitsArray = [topHitsDictionary valueForKey:@"title"];
// ...
[responseData release];

我认为这些教程使用的是或类似的JSON解析器框架

如果您不想使用任何外部框架,可以尝试使用iOS 5.0以来提供的
NSJSONSerialization

[connection release]
NSError *jsonError = nil;
NSDictionary *topHitsDictionary = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&jsonError];
NSArray *topHitsArray = [topHitsDictionary valueForKey:@"title"];
// ...
[responseData release];

看起来您正在使用Max Kramer的扩展进行JSON解析。很可能是您忘记导入
JSON.h
哦,是的。非常感谢。但是我更喜欢NSJSONSerialization,因为我不需要导入任何东西。导入代码没有问题。它基本上使用了
NSJSONSerialization
,只是让您更容易。看起来您正在使用Max Kramer的扩展进行JSON解析。很可能是您忘记导入
JSON.h
哦,是的。非常感谢。但是我更喜欢NSJSONSerialization,因为我不需要导入任何东西。导入代码没有问题。它基本上使用的是
nsjson序列化
,只是让您更轻松。谢谢!最后,我使用了Max Kramer的扩展,但我更喜欢内置的方式。现在,当我放置self.topKpop=[NSMutableArray arrayWithObjects:[topHitsDictionary valueForKey:@“author”],nil]时,它说的是糟糕的访问代码。哦,孩子,你能改做这个吗<代码>self.topKpop=[topHitsDictionary objectForKey:@“author”]
此外,您可能希望将
NSJSONReadingMutableContainers
作为
JSONObjectWithData
中的
选项传递。我明天必须尝试,因为我的开发计算机位于不同的位置。谢谢你!我不得不将
[responseData release]
移到方法的末尾。这就是为什么!谢谢最后,我使用了Max Kramer的扩展,但我更喜欢内置的方式。现在,当我放置self.topKpop=[NSMutableArray arrayWithObjects:[topHitsDictionary valueForKey:@“author”],nil]时,它说的是糟糕的访问代码。哦,孩子,你能改做这个吗<代码>self.topKpop=[topHitsDictionary objectForKey:@“author”]
此外,您可能希望将
NSJSONReadingMutableContainers
作为
JSONObjectWithData
中的
选项传递。我明天必须尝试,因为我的开发计算机位于不同的位置。谢谢你!我不得不将
[responseData release]
移到方法的末尾。这就是为什么!