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解析的更多相关文章

  1. ios的网络数据下载和json解析

    ios的网络数据下载和json解析 简介 在本文中,笔者将要给大家介绍如何使用nsurlconnection 从网上下载数据,以及解析json数据格式,以及如何显示数据和图片的异步下载显示. 涉及的知 ...

  2. ios 网络数据下载和JSON解析

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

  3. iOS开发网络数据之AFNetworking使用

    iOS开发网络数据之AFNetworking使用 如何选择AFNetworking版本 首先得下载AFNetworking库文件,下载时得首先弄清楚,你将要开发的软件兼容的最低版本是多少.AFNetw ...

  4. iOS - NetRequest 网络数据请求

    1.网络请求 1.1 网络通讯三要素 1.IP 地址(主机名): 网络中设备的唯一标示.不易记忆,可以用主机名(域名). 1) IP V4: 0~255.0~255.0~255.0~255 ,共有 2 ...

  5. IOS开发网络数据---- AFNetworking的使用

    http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库.最新版本支持session,xctool单元测试.网络获取数 ...

  6. iOS开发网络数据之AFNetworking使用1

    链接地址:http://blog.csdn.net/daiyelang/article/details/38421341 如何选择AFNetworking版本 官网下载2.5版本:http://afn ...

  7. iOS开发网络数据之AFNetworking使用 分类: ios技术 2015-04-03 16:35 105人阅读 评论(0) 收藏

    http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库.最新版本支持session,xctool单元测试.网络获取数 ...

  8. Qt on Android: http下载与Json解析

    百度提供有查询 ip 归属地的开放接口,当你在搜索框中输入一个 ip 地址进行搜索,就会打开由 ip138 提供的百度框应用,你能够在框内直接输入 ip 地址查询.我查看了页面请求,提取出查询 ip ...

  9. lwip:网络数据包读取和解析过程

    1. 程序的某处(poll or interrupt)在有数据可读时调用ethernetif_input,该函数依次调用以下函数: 1.1 low_level_input(),将网络数据读入内存: 1 ...

随机推荐

  1. HTML学习(八)列表和块

    无序列表无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圈)进行标记.无序列表始于 <ul> 标签.每个列表项始于 <li>.<ul type=“”> ...

  2. 为什么jQuery要返回jQuery.fn.init对象

    作者:zccst jQuery = function( selector, context ) { // The jQuery object is actually just the init con ...

  3. C#设计模式(6)——原型模式

    一.概念 二.模型 三.代码实现 ///火影忍者中鸣人的影分身和孙悟空的的变都是原型模式 class Client { static void Main(string[] args) { // 孙悟空 ...

  4. 增量式PID的stm32实现(转)

    源:增量式PID的stm32实现,整定过程 首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异. 资料上比较多的是: 还有一种是: ...

  5. Mac OS X窗口最小化方法的几个快捷键

    大家都知道在 OS X 系统中,点击窗口左上角中间的小黄按钮就可以最小化当前窗口.而事实上,还有一些比点击这个按钮更快的窗口最小化方法.这里一起分享给大家! 使用快捷键 Command+M,可以实现快 ...

  6. AFNetworking content type not support

    ref:http://blog.csdn.net/nyh1006/article/details/25068255 1.错误信息:Error:Error Domain=AFNetworkingErro ...

  7. php 中文切割字符串长度

    function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) { if(function_ex ...

  8. BZOJ1119[POI2009]SLO && BZOJ1697[Usaco2007 Feb]Cow Sorting牛排序

    Problem J: [POI2009]SLO Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 622  Solved: 302[Submit][Sta ...

  9. BZOJ1478 Sgu282 Isomorphism

    Problem A: Sgu282 Isomorphism Time Limit: 15 Sec  Memory Limit: 64 MBSubmit: 172  Solved: 88[Submit] ...

  10. 思迅/泰格/科脉/收银软件/商超软件数据库修复解决断电造成损坏的mdb\dat文件SQL数据库 置疑 修复 恢复

    拥有专业管理软件数据库修复技术工程师,专业提供管家婆.美萍.思迅.科脉等管理软件技术服务,电脑维修\重装系统技 术服务.无法登陆打不开等出错问题处理(连接失败,请输入正确的服务器名,SQL Serve ...