ios - 解析从 AFNetworking 获取的 JSON 以显示在 UITableView 中

标签 ios objective-c afnetworking-2

我最近使用 AFNetworking 来获取 JSON 并解析它,我已经将它导入到我的项目中并获得了 JSON 但我不知道我不知道如何解析 JSON 以进行显示,尤其是在 Objective-c 中。

这是在我的 viewDidLoad 中获取 JSON 的代码:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://api.androidhive.info/json/movies.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

检索到的用于解析的JSON:

  {
        genre =         (
            Action,
            Drama,
            "Sci-Fi"
        );
        image = "http://api.androidhive.info/json/movies/1.jpg";
        rating = "8.300000000000001";
        releaseYear = 2014;
        title = "Dawn of the Planet of the Apes";
    },
        {
        genre =         (
            Action,
            "Sci-Fi",
            Thriller
        );
        image = "http://api.androidhive.info/json/movies/4.jpg";
        rating = "8.4";
        releaseYear = 2014;
        title = "X-Men: Days of Future Past";
    },
        {
        genre =         (
            Action,
            Adventure,
            Fantasy
        );
        image = "http://api.androidhive.info/json/movies/7.jpg";
        rating = "7.3";
        releaseYear = 2014;
        title = "The Amazing Spider-Man 2";
    },
        {
        genre =         (
            Animation,
            Comedy,
            Family
        );
        image = "http://api.androidhive.info/json/movies/9.jpg";
        rating = "8.300000000000001";
        releaseYear = 2013;
        title = Rush;
    },
        {
        genre =         (
            Animation,
            Adventure,
            Family
        );
        image = "http://api.androidhive.info/json/movies/15.jpg";

        rating = "8.199999999999999";
        releaseYear = 2010;
        title = "How to Train Your Dragon";
    }
)

更新:

如何显示它并存储检索到的数据,以便更容易地在 UITableView 中显示它。 我试着这样做:

NSLog(@"JSON: %@", [responseObject objectForKey:@"image"]);

只获取整个图像但它崩溃了。例如,我只需要获取所有标题并将它们存储在数组中,然后显示它们 UITableView

最佳答案

你尝试用这种方式从NSDictionary获取数据

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager GET:@"http://api.androidhive.info/json/movies.json" parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"JSON: %@", responseObject);
    self.arrData=[[NSMutableArray alloc]initWithArray:responseObject];
    [self.tableView reloadData];// reload table data
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error);
}];

TableView 委托(delegate)方法

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
       // your cell code here
      // indexPath.row(use in tableView) means your number of index to get value
    NSLog(@"JSON: %@", [[self.arrData objectAtIndex:indexPath.row] objectForKey:@"image"]);
    NSLog(@"title: %@", [[self.arrData objectAtIndex:indexPath.row] objectForKey:@"title"]);
    NSLog(@"rating: %@", [[self.arrData objectAtIndex:indexPath.row] objectForKey:@"rating"]);
   NSLog(@"releaseYear: %@", [[self.arrData objectAtIndex:indexPath.row] objectForKey:@"releaseYear"]);
   NSLog(@"genre: %@", [[self.arrData objectAtIndex:indexPath.row] objectForKey:@"genre"]);// return array get value particular using array index 
}

关于ios - 解析从 AFNetworking 获取的 JSON 以显示在 UITableView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31403308/

相关文章:

ios - arc4random:限制生成的随机数的值

ios - 我无法从模型类中的 NSDictionary 获取值?

ios: AFNetworking 在 info.plist 中指定基本 url

javascript - 排毒 _ 无法键入字符串,因为键盘未显示在屏幕上

ios - 地幔 : Uncaught exception 'NSInvalidArgumentException' when parsing JSON

ios - UIView drawViewHierarchyInRect 给出像素化结果?

ios - 使用 AFNetworking 2.0 发布 JSON 数据

ios - UITableView 更新后的 ReloadData

ios - Spritekit 使用关卡

ios - AFNetworking - 重试直到 API 正确响应