iOS 网络数据请求和Json 解析

 移动开发过程中,很多时候,我们的数据来自网络别人提供的数据接口,所以我们做app的时候,需要用别人提供的接口把数据解析下载到本地,然后建立数据模型,再把数据显示到UI 界面上,网络上一搬提供两种数据的接口
Json 数据,xml 数据.
1.Json 下载并解析
//.m  文件中定义两个对象

@interface ViewController ()
{
    NSURLConnection *_urlConnection;  //用于下载的对象
    NSMutableData *_downloadData;     //存储下载的数据
}


//然后需要在viewDIdLoad 方法中去初始化两个对象:
- (void)viewDidLoad
{
NSString *urlString=@"http://192.168.88.8/sns/my/user_list.php?page=1d&number=20";
//创建并初始化_urlConnection 对象
//参数说明:
  //参数1.initWithRequest:网络请求url
 // 参数2. delegate 网络请求成功后处理事件,需要遵守     NSURLConnectionDataDelegate协议,
//参数3.startImmediately  是否立即下载,一般都是YES

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

//创建_downloadData  并初始化对象

_downloadData=[[NSMutableData alloc]init];


//遵守NSURLConnectionDataDelegate协议的方法
//当接收到服务器响应时执行

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    NSLog(@"开始下载数据");
}
//作用当接收到数据时执行,下载数据较多的时候执行,需要将每次下载的数据合并到一
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    //每次下载到数据都添加到数据中
    NSLog(@"下载数据中");
    [_downloadData appendData:data];
    
}
//下载完成
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    
    
    //数据下载完成后,解析下载完成的数据
    //Serialization  把json格式的数据,解析为oc 的数据类型
   //Json 格式的最上层是什么数据类型,就定义什么数据类型去接收数据

  NSDictionary *dict= [NSJSONSerialization  JSONObjectWithData:_downloadData options: NSJSONReadingMutableContainers error:nil ];
   //打印验证数据是否解析成功
    NSLog(@"dict=%@",dict);
      //接着建立数据模型存储数据
      ………

}




 

你可能感兴趣的:(iOS开发)