IOS之网络数据下载和JSON解析
简介
在本文笔者将要给大家介绍IOS如何利用NSURLConnection从网络上下载数据,以及如何解析下载下来的JSSON数据格式,以及如何显示数据和图片的一部下载显示。
涉及到的知识点:
1.NSURLConnection异步下载和封装
2.JSON格式和JSON格式解析
3.数据显示和使用SDWebImage异步显示图片
内容
1.网络下载基础知识介绍
什么是网络应用?
网络应用程序是一种使用网页浏览器在互联网或企业内部网上操作的应用软件。是一种以网页语言(例如HTML、JavaScript、Java等编程语言)撰写的应用程序,需要通过浏览器来运行。
网络应用的程序结构:c/s,b/s;
常见的网络接口形式:以太网接口;
常见的数据格式:jason,xml;
2.NSURLConnection使用
NSString同步下载数据......
// HTTP中使用URL地址 // http:// 地址使用协议(ftp://) // iappfree.candou.com 主机地址(域名和IP) // :8080 主机端口 // /free/applications/limited 网页程序文件路径 // ?currency=rmb&page=1&category_id= 程序参数(参数用&分割) NSString *urlString = @"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id="; //下载数据 //通过地址生成NSURL对象 NSError *error = nil; NSURL *url = [NSURL URLWithString:urlString]; NSString *content = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error]; if (error==nil) { NSLog(@"content = %@",content); } else { NSLog(@"下载失败"); } //项目中怎么使用 //1.同步形式下载, initWithContentsOfURL下载完了之后才会返回 // 造成界面假死,不能用 //2.使用异步下载(NSURLConnection异步下载)
3.JSON解析
可以通过系统提供的一个类NSJSONSerialization来完成,可以很方便的转为字典或者数组。范例代码如下。
- (void)dealDownloadFinish:(NLHttpRequest *)request{ NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:request.data options:NSJSONReadingMutableContainers error:nil]; NSArray * dicts = [dict valueForKeyPath:@"list"]; for (NSDictionary *dict in dicts) { NLEvent *event = [NLEvent eventWithDictionary:dict]; [_modelArray addObject:event]; } [_tableView reloadData]; }