iOS之网络数据下载和JSON解析
iOS之网络数据下载和JSON解析
简介
在本文中笔者将要给大家介绍IOS中如何利用NSURLconnection从网络上下载数据以及如何解析下载下来的JSON数据格式,以及如何显示数据和托图片的异步下载显示。
涉及到的知识点;
1. NSURLconnection异步下载和封装
2.JSON格式和JSON格式解析
3. 数据显示和使用SDWebImage异步显示图片
内容
1.网络下载基础知识介绍
什么是网络应用?
网络应用就是在有网络的环境下才能正常使用的一些应用程序。
网络应用的程序结构
C/S结构
Client客户端: 展示数据, 与用户进行交流。
Server服务端: 为客户端提供数据, 提供服务。
界面开发的一般流程
1.你先需要知道自己做的界面是怎样的一个效果,然后你再看需要什么素材和网络接口。
2.利用NSURLConnection异步下载数据。
3.通过解析数据,建立数据模型model。
4.自行定义一个UITabBarViewCell来显示界面。
2.NSURLconnection的使用
在这里我们是封装了这个异步下载的方法
@interface ZXHttpRequest()<NSURLConnectionDataDelegate>
{
NSString *_url;
SEL _action;
NSURLConnection *_connection;
id _target; } @implementation ZXHttpRequest -(void)requestWithUrl:(NSString *)url
target:(id)target
action:(SEL)action;
{ _url=url;
_action=action;
_target=target;
_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
{ [_target performSelector:_action withObject:self];
}
NSString同步下载数据
我们把它写在这个方法里面,数据的接口是爱限免的数据接口,同步下载我们是不能用的,因为如果你要下载的数据比较大的话就很容易陷进这个方法里面去出不来,我们的异步下载是在后台运行下载的,但同步下载却是下载完数据之后返回再跳出方法的。这是它们的不同点,也是同步下载的致命缺陷。
-(void)testNSStringDownloadData
{
NSString *urlString = @"http://iappfree.candou.com:8080/free/applications/limited?currency=rmb&page=1&category_id="; 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(@"下载失败");
} }
3 JSON格式说明和格式化工具
JSON格式最重要的就是要搞清楚它数据里面的嵌套关系,它解析的方法其实很简单,重点不在方法,就在嵌套关系,我们通过一个JASON的解析软件就可以清楚的看到它里面嵌套的数据结构了,推荐给大家。
这是解析的方法:
NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:(NSData *)options:(NSJSONReadingOptions) error:(NSError *__autoreleasing *)
4.一个完整界面的实现(包含Model创建)
效果图 :
iOS之网络数据下载和JSON解析的更多相关文章
- ios的网络数据下载和json解析
ios的网络数据下载和json解析 简介 在本文中,笔者将要给大家介绍如何使用nsurlconnection 从网上下载数据,以及解析json数据格式,以及如何显示数据和图片的异步下载显示. 涉及的知 ...
- ios 网络数据下载和JSON解析
ios 网络数据下载和JSON解析 简介 在本文中笔者将要给大家介绍ios中如何利用NSURLConnection从网络上下载数据,如何解析下载下来的JSON数据格式,以及如何显示数据和图片的异步下载 ...
- iOS开发网络数据之AFNetworking使用
iOS开发网络数据之AFNetworking使用 如何选择AFNetworking版本 首先得下载AFNetworking库文件,下载时得首先弄清楚,你将要开发的软件兼容的最低版本是多少.AFNetw ...
- iOS - NetRequest 网络数据请求
1.网络请求 1.1 网络通讯三要素 1.IP 地址(主机名): 网络中设备的唯一标示.不易记忆,可以用主机名(域名). 1) IP V4: 0~255.0~255.0~255.0~255 ,共有 2 ...
- IOS开发网络数据---- AFNetworking的使用
http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库.最新版本支持session,xctool单元测试.网络获取数 ...
- iOS开发网络数据之AFNetworking使用1
链接地址:http://blog.csdn.net/daiyelang/article/details/38421341 如何选择AFNetworking版本 官网下载2.5版本:http://afn ...
- iOS开发网络数据之AFNetworking使用 分类: ios技术 2015-04-03 16:35 105人阅读 评论(0) 收藏
http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库.最新版本支持session,xctool单元测试.网络获取数 ...
- Qt on Android: http下载与Json解析
百度提供有查询 ip 归属地的开放接口,当你在搜索框中输入一个 ip 地址进行搜索,就会打开由 ip138 提供的百度框应用,你能够在框内直接输入 ip 地址查询.我查看了页面请求,提取出查询 ip ...
- lwip:网络数据包读取和解析过程
1. 程序的某处(poll or interrupt)在有数据可读时调用ethernetif_input,该函数依次调用以下函数: 1.1 low_level_input(),将网络数据读入内存: 1 ...
随机推荐
- WAV音频格式分析
wav是windows下无损的声音文件,该文件保存了音频的PCM信息和播放器播放该音乐的时候的大多数信息,他有两个块组成,第一个块是格式块,第二个块是数据块 先说格式块,格式块用一张图可以解释,如下 ...
- USB自定义HID设备实现-LPC1768
首先在之前鼠标的基础上修改设备描述符 #include "usbdesc.h" //usb标准设备描述符 const U8 USB_DeviceDescriptor[] = { U ...
- Centos 修改时间地区及NTP同步北京时间
在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况.如果没有安装,而你使用的是 CentOS系统 那使用命令 yum insta ...
- JQuery Easy Ui dataGrid 数据表格 -->转
转至: http://www.cnblogs.com/cnjava/archive/2013/01/21/2869876.html#events 数据表格 - DataGrid 内容 概况 使用方法 ...
- SVN 备忘录
上传文件夹 svn import distcomp/ svn+ssh://USERNAME@166.120.110.119/mnt/disk1/fserver/svn/distcomp -m &quo ...
- Python第三天 序列 数据类型 数值 字符串 列表 元组 字典
Python第三天 序列 数据类型 数值 字符串 列表 元组 字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...
- centos6 安装mysql
如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--Cen ...
- HTML/CSS/Javascript调试入门(转)
推荐Chrome作为开发工具(FF可以使用FireBug,IE8和之后的版本也有自己的调试工具) 1.HTML的调试 将鼠标放在任意元素上,右键Inspect Element,即可查看该元素的HTML ...
- 编写快速、高效的JavaScript代码
许多Javascript引擎都是为了快速运行大型的JavaScript程序而特别设 计的,例如Google的V8引擎(Chrome浏览器,Node均使用该引擎).在开发过程中,如果你关心你程序的内存和 ...
- javascript中类的属性访问权限研究(1)
本篇文章主要针对javascript的属性进行分析,由于javascript是一种基于对象的语言,本身没有类的概念,所以对于javascript的类的定义有很多名字,例于原型对象,构造函数等,它们都是 ...