iOS--JSON解析后如何获取数据,并且展示到相应cell上。

  1. 首先建立一个singleview工程,并在故事版中添加UITableView,连好数据源和代理。

  2. 在.h文件中添加数据源和代理方法,并且声明一个UITableView的变量,代码如下。

  3. #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController<UITableViewDataSource,UITableViewDelegate>
    
    @property (weak, nonatomic) IBOutlet UITableView *tableview;
    
    @end
  4. 剩下的代码比较简单,我就直接贴代码了,已经在里面详细注释了。

  5. .m文件如下

  6. #import "ViewController.h"
    
    @interface ViewController ()
    {
        NSMutableArray *_listarr;  //定义一个存放数据的容器。
    }
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        //ios7新特性,这个请自行百度。
        [self.tableview registerClass:[UITableViewCell class] forCellReuseIdentifier:@"Cell"];
    
        
        NSError *error;
        
        //加载一个NSURL对象
        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.touzhu.cn/ex_jc.aspx?state=0&ifgetclass=1"]];
        
        //将请求的url数据放到NSData对象中
        NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
        
        //IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
        
        //获取数组list的内容
        NSArray *list = [dic objectForKey:@"list"];
        NSLog(@"list数组的内容为--》%@", list );
        
        //初始化成员变量
        _listarr = [[NSMutableArray alloc]init];
        
        //遍历数组list里的内容
        for (int i = 0; i<[list count]; i++) {
            
            //按数组中的索引取出对应的字典
            NSDictionary *listdic = [list objectAtIndex:i];
            
            //通过字典中的key取出对应value,并且强制转化为NSString类型
             NSString *teamname = (NSString *)[listdic objectForKey:@"name_j"];
            
            //将获取的value值放到数组容器中
            [_listarr addObject:teamname];
            NSLog(@"name内容为--》%@", teamname );
        }
        
    }
    
    
    
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        //必须返回与数据容器一样的数量,否则会报数据越界错
        return [_listarr count];
    }
    
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        
        static NSString *CellIdentifier = @"Cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
        
        //将要显示的数据赋值到cell上
        cell.textLabel.text = [_listarr objectAtIndex:indexPath.row];
        return cell;
    }
    
    
    @end

7.    程序运行如下

         iOS--JSON解析后如何获取数据,并且展示到相应cell上。

你可能感兴趣的:(iOS--JSON解析后如何获取数据,并且展示到相应cell上。)