ios網路學習------5 json格式資料的請求處理

來源:互聯網
上載者:User

JSON正逐步取代XML,成為網路資料的通用格式。

從ios5開始,使用NSJSONSerialization對JSON解析。還有第三方庫,比如SBJson, JSONKit, TouchJson等。從效能上說,NSJSONSerizlization最好,JSONKit其次,SBJson使用較為廣泛。


載入json檔案:

#pragma mark 載入json- (void)loadJson{    NSLog(@"load json");    //從web伺服器載入資料    NSString *str = @"http://www.baidu.com?format=json";  //這裡是亂寫的    //提示:NSData本身具有同步方法,但是在實際開發中,不要使用次方法    //在使用NSData的同步方法時,無法指定逾時時間,如果伺服器串連不正常,會影響使用者體驗。    //NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:str]];    //簡曆NSURL    NSURL *url = [NSURL URLWithString:str];    //建立NSURLRequest    NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:2.0f];    //建立NSURLConnect的同步方法載入資料    NSURLResponse *response = nil;    NSError *error = nil;    //同步載入資料    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];    //錯誤處理    if (data != nil) {        //下面這兩句話本身沒有什麼意義,僅用於跟蹤調試。        NSString *result = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];        NSLog(@"%@", result);                //在處理網路資料的時候,不要將NSData轉換成nsstring。        [self handlerJSONData:data];    }else if (data == nil && error == nil){        NSLog(@"空資料");    }else    {        NSLog(@"%@", error.localizedDescription);    }}
在這裡處理得到的nsdata格式的資料解析成json格式的資料。
#pragma mark 處理json資料- (void)handlerJSONData:(NSData *)data{    //json檔案中的[]表示一個資料。    //還原序列化json資料    /*     序列化: 將一個nsboject轉換成序列資料,以便通過互連網進行傳輸。     還原序列化:將網路上擷取的資料反向產生我們需要的對象。     */    NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];        NSLog(@"%@", array);  //json解析以後是nsarray格式的資料。}



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.