ios之网络数据下载和JSON解析

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

ios之网络数据下载和JSON解析简介在本文中笔者将要给大家介绍ios中如何利用NSURLConnection从网络上下载数据以及如何解析下载下来的JSON的数据格式,以及如何显示数据和图片的异步下载显示

涉及到的知识应用:

1.NSURLConnection异步下载和封装

2.JSON格式和JSON格式解析

3.数据显示和使用SDWebImage异步显示图片

内容1网络下载基础知识介绍什么是网络应用?

一般情况下,iphone上绝大多数的应用都需要网络才能运行,就是网络应用。

网络应用的程序结构

在网络上运行一个程序为应用提供数据, 或者提供服务, 那么这个网络应用一般称为客户端, 而网络上运行的服务称为服务端。

常见的网络接口形式

iOS网络应用常见的数据接口一般都是HTTP形式的URL地址。

界面开发的一般流程

下载数据 NSURLConnection+URL

解析数据 JSON/xml

建立数据模型model

创建视图 使用视图显示

tableView +定制cell

图片异步下载SDWeblmage

2NSURLConnection的使用NSString同步下载数据

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(@"下载失败");

}

NSURLConnection 同步下载

NSURL *url = [NSURL URLWithString:urlString];

NSURLRequest *request = [NSURLRequest requestWithURL:url];

NSError *error = nil;

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];

if(error == nil)

{

NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"str = %@",str);

}

else

{

NSLog(@"下载失败");

}

NSURLConnection 异步下载

@PRoperty (copy,nonatomic) NSMutableData *data;

//作用:

// 传入网址, 下载完成执行后执行target对象中action方法

-(void)requestWithUrl:(NSString *)url target:(id)target action:(SEL)action;

@interface ZJHttpRequest ()<NSURLConnectionDataDelegate>

{

NSURLConnection *_connection;

NSString *_url;

id _target;

SEL _action;

}

@end

@implementation ZJHttpRequest

//作用:

// 传入网址, 下载完成执行后执行target对象中action方法

-(void)requestWithUrl:(NSString *)url

target:(id)target

action:(SEL)action

{

_url = url;

_target = target;

_action = action;

//发起URL请求

_data = [[NSMutableData alloc] init];

_connection = [[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]] delegate:self startImmediately:YES];

}

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

{

[_data appendData:data];

}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection

{

//下载完成了, 执行保存的方法

if(_target && [_target respondsToSelector:_action])

{

[_target performSelector:_action withObject:self];

}

}

3JSON格式说明和格式化工具

JSON格式

{

"count":20,

"data":[

"zhangsan",

"lisi",

"wangwu"

]

}

[] 表示数组,对应NSArray

, 表示并列的数据

{} 表示字典,对应NSDictionary

: 表示键值对

"xxx" 表示字符串,对应NSString

20 对应NSNumber

4一个完成页面的实现(包含model的创建,SDWebImage的使用)

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航