iOS 網絡數據請求和Json 解析

 移動開發過程中,很多時候,我們的數據來自網絡別人提供的數據接口,所以我們做app的時候,需要用別人提供的接口把數據解析下載到本地,然後建立數據模型,再把數據顯示到UI 界面上,網絡上一搬提供兩種數據的接口
Json 數據,xml 數據.
1.Json 下載並解析
//.m  文件中定義兩個對象

@interface ViewController ()<NSURLConnectionDataDelegate>
{
    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);
      //接着建立數據模型存儲數據
      ………

}




 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章