最新消息:文章中包含代码时,请遵守代码高亮规范!

AFNetworking解析网络数据[原创]

iOS 黄 艳承 603浏览 0评论

AFNetworking的基本内容再此不做讲解,百度上有很多好文章可以自行阅读。这里只是用AFNetworking做一个简单的网络数据获取。
用到的API:http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1(随便找到的一个)
如果你去查看的话,会发现数据很乱,这里有一个网址可以校验json数据https://www.bejson.com

截取一小段看一下,方便建立模型

 

json数据.png
一、步骤

(1)下载第三方框架AFNetworking,并在需要的地方倒入头文件
(2)创建一个model类()

//在json数据中随便找的两个key(嘿嘿)
@property(nonatomic,weak)NSString *name;
@property(nonatomic,weak)NSString *releaseDate;

(3)在ViewController中

  • 倒入模型类,与AFNetworking的头文件

ps:这里我们用一个tableview显示我们获取的数据

Snip20171113_3.png

 

接下来便是构建tableview

 _tableview = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStylePlain];
    _tableview.delegate=self;
    _tableview.dataSource=self;
    [self.view addSubview:_tableview];

三个方法:

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return _array.count;
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *id=@"cell";
    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:id];
    if (cell==nil)
 {
        cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:id];
    }
 model *mod=[_array objectAtIndex:indexPath.row];
  cell.textLabel.text=mod.name;
  cell.detailTextLabel.text=mod.releaseDate;
    return cell;
}

接下来便是重点了:

-(void)json
{
    //创建http链接管理对象(单例获得)
    AFHTTPSessionManager *manager=[AFHTTPSessionManager manager];
    manager.responseSerializer.acceptableContentTypes=[NSSet setWithObject:@"application/json"];
    //get 方法获取服务器的数据
    [manager GET:JsonGet parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        //根据返回的json数据进行解析
       NSDictionary *dic=(NSDictionary *)responseObject;
        NSArray *arrayapplications=dic[@"applications"];
       //取出想要的数据
          for (NSDictionary *item in arrayapplications) {
            model *m=[[model alloc]init];
            m.name=item[@"name"];
            m.releaseDate=item[@"releaseDate"];
            //array的初始化在viewDidLoad方法中就不贴了
            [_array addObject:m];
       }
        //不写,tableview不会显示数据
           [_tableview reloadData];
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"error");
    }];
   }

这样就可以了

 

运行结果.png

 

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/23150.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Jasmine的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!