设置数组等于JSON数组 - Xcode

时间:2013-03-30 19:26:14

标签: arrays json uitableview httprequest afnetworking

我正在试图弄清楚如何从JSON数组填充表。到目前为止,我可以使用以下代码完全填充我的表格单元格:

self.countries = [[NSArray alloc]initWithObjects:@"Argentina",@"China",@"Russia",nil];

关于JSON,我可以一次成功检索一行文本并将其显示在标签中。我的目标是从JSON数组填充整个表视图。我尝试使用以下代码,但它仍然不会填充我的表。显然我做错了什么,但我到处搜索,仍然无法弄明白:

NSURL *url = [NSURL URLWithString:@"http://BlahBlahBlah.com/CountryList"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
    NSLog(@"%@",[JSON objectForKey:@"COUNTRIES"]);
    self.countries = [JSON objectForKey:@"COUNTRIES"];
}
failure:nil];
[operation start];

我很肯定正在检索数据,因为NSLog完全可以输出文本。但是当我尝试将我的数组设置为等于JSON数组时,没有任何反应。我知道代码可能是错误的,但我认为我的方向正确。非常感谢您的帮助。

编辑: 这是我正在使用的JSON文件中的文本:

{
 "COUNTRIES": ["Argentina", "China", "Russia",]
}           

-Miles

1 个答案:

答案 0 :(得分:1)

您似乎需要一些基本的JSON解析。如果您只定位iOS 5.0及更高版本的设备,则应使用NSJSONSerialization。如果您需要支持早期的iOS版本,那么我真的推荐开源JSONKit框架。

推荐上述内容后,我自己几乎总是使用Sensible TableView框架从我的Web服务中获取所有数据并自动将其显示在表视图中。为我节省了大量的手工劳动,使应用程序维护变得轻而易举,因此也可能需要考虑。祝你好运!