欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

iOS三種Json方法解析國家氣象局API-創(chuàng)新互聯(lián)

國家氣象局提供的天氣預(yù)報接口

莊河ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

接口地址有三個:

http://www.weather.com.cn/data/sk/101010100.html

http://www.weather.com.cn/data/cityinfo/101010100.html

http://m.weather.com.cn/data/101010100.html

第三接口信息較為詳細(xì),提供的是6天的天氣,關(guān)于API所返回的信息請見開源免費天氣預(yù)報接口API以及全國所有地區(qū)代碼?。。▏覛庀缶痔峁?,全國各城市對應(yīng)這一個id號,根據(jù)改變id好我們就可以解析出來各個城市對應(yīng)天氣;

Json以其輕巧簡單成為較為流行文件格式,在手機上傳輸比XML快,iOS5以前蘋果公司并沒有對Json解析提供庫文件支持,但是好在有一些大牛們專門為Objective-c只做了能夠解析Json文件的庫,iOS蘋果公司提供了對json的原生支持類NSJSONSerialization;本文將介紹TouchJson SBJson 和iOS5所支持的原生的json方法,解析國家氣象局API,TouchJson和SBJson需要下載他們的庫

TouchJson  http://download.csdn.net/detail/duxinfeng2010/4484144

SBJson   http://download.csdn.net/detail/duxinfeng2010/4484842

1.創(chuàng)建一個新工程叫JsonThreeDemo; File->New->Project ->single View Application -> next,注意不使用ARC,不要勾選Use Automatic Refrence Counting,否則運行時候庫文件中會報錯

iOS三種Json方法解析國家氣象局API

2.使用TouchJson庫需要添加頭文件 #import "CJSONDeserializer.h",使用SBJson需要添加頭文件 #import "SBJson.h"然后打開XIB添加三個button,讓添加三個方法

iOS三種Json方法解析國家氣象局API

- (IBAction)buttonPressedone:(id)sender;

- (IBAction)buttonPressedtwo:(id)sender;

- (IBAction)buttonPressedthree:(id)sender;

3.三個解析方法都類似

TouchJson庫解析北京天氣

- (IBAction)buttonPressedone:(id)sender { //    獲取API接口     NSURL *url = [NSURL URLWithString:@"http://m.weather.com.cn/data/101010100.html"]; //    定義一個NSError對象,用于捕獲錯誤信息     NSError *error; //         NSString *jsonString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];     //    NSLog(@"jsonstring--->%@",jsonString); //    將解析得到的內(nèi)容存放字典中,編碼格式UTF8,防止取值時候發(fā)生亂碼     NSDictionary *rootDic = [[CJSONDeserializer deserializer] deserialize:[jsonString dataUsingEncoding:NSUTF8StringEncoding] error:&error]; //    因為返回的Json文件有兩層,去第二層類容放到字典中去0     NSDictionary *weatherInfo = [rootDic objectForKey:@"weatherinfo"]; //    取值打印     NSLog(@"今天是 %@ %@ %@ 的天氣狀況是:%@ %@",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"],[weatherInfo objectForKey:@"weather1"],[weatherInfo objectForKey:@"temp1"]);  }

SBJson庫,解析南陽天氣,換一下城市的id號就可以了

- (IBAction)buttonPressedtwo:(id)sender {     NSURL *url = [NSURL URLWithString:@"http://m.weather.com.cn/data/101180701.html"];     NSError *error=nil;     NSString *jsonString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];       SBJsonParser *parser = [[SBJsonParser alloc]init];          NSDictionary *rootDic = [parser objectWithString:jsonString error:&error];     NSDictionary *weatherInfo = [rootDic objectForKey:@"weatherinfo"];     NSLog(@"今天是 %@ %@ %@ 的天氣狀況是:%@ %@",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"],[weatherInfo objectForKey:@"weather1"],[weatherInfo objectForKey:@"temp1"]);      }

iOS5所支持的原生json解析,信陽市天氣
- (IBAction)buttonPressedthree:(id)sender {     NSError *error; //    加載一個NSURL對象     NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.weather.com.cn/data/101180601.html"]]; //    將請求的url數(shù)據(jù)放到NSData對象中     NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; //    iOS5自帶解析類NSJSONSerialization從response中解析出數(shù)據(jù)放到字典中     NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error]; //   weatherDic字典中存放的數(shù)據(jù)也是字典型,從它里面通過鍵值取值     NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];          NSLog(@"今天是 %@ %@ %@ 的天氣狀況是:%@ %@",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"],[weatherInfo objectForKey:@"weather1"],[weatherInfo objectForKey:@"temp1"]); //    打印出weatherInfo字典所存儲數(shù)據(jù)     NSLog(@"weatherInfo字典里面的內(nèi)容是--->%@",[weatherInfo description]); }

如果我們像獲取更多信息,直接從字典中取值

我們用到了這樣一個類方法

+ (NSData *)sendSynchronousRequest:(NSURLRequest *)request returningResponse:(NSURLResponse **)response error:(NSError **)error

  • request 要裝載的URL請求. 這個request 對象 作為初始化進程的一部分,被深度復(fù)制(deep-copied). 在這個方法返回之后, 再修改request, 將不會影響用在裝載的過程中的request
  • reponse 輸出參數(shù), 由服務(wù)器返回的URL響應(yīng)
  • error  輸出參數(shù), 如果在處理請求的過程中發(fā)生錯誤,就會使用. 無錯誤,就為NULL
它返回的是一個下載的url請求,如果連接失敗或者創(chuàng)建失敗失敗返回nil

4.運行結(jié)果(如果想知道每次字符串和字典間取值情況,只需NSLog打印輸出就行):

iOS三種Json方法解析國家氣象局API

5.再解析取值的時候花費了一些時間,取值時發(fā)生應(yīng)用程序崩潰,獲取值不正確

有時我們從字典中獲取了這樣的數(shù)據(jù),感覺比較郁悶,并未顯示中文,這種情況是我們把數(shù)據(jù)放到字典中,編碼方式是UTF8,取值打印出來的時候就成中文了

iOS三種Json方法解析國家氣象局API


在解析出來數(shù)據(jù)后我想這樣取值,

NSDictionary *weatherInfo = [rootDicobjectForKey:@"weatherinfo"];

  NSArray *weatherArray = [rootDicobjectForKey:@"weatherinfo"];

  for (NSDictionary *dicin weatherArray) {

    NSLog(@"----->%@",dic);

  }

打印出來的dic數(shù)據(jù)是這樣的

iOS三種Json方法解析國家氣象局API

這是我們json文件的第二層數(shù)據(jù)取出放到了一個數(shù)組中,然后定義了一個字典對象在數(shù)組中遍歷取出存放的數(shù)據(jù),于是就想用

NSLog(@"----->%@",[dicobjectForKey:@"city"]);來取出city的值,但是應(yīng)用程序崩潰

iOS三種Json方法解析國家氣象局API

出現(xiàn)這種情況是因為在對解析出數(shù)據(jù)存值和取值發(fā)生問題,說明這種方式是取值是不正確的;


源代碼:http://download.csdn.net/detail/duxinfeng2010/4484818


另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

新聞名稱:iOS三種Json方法解析國家氣象局API-創(chuàng)新互聯(lián)
URL地址:http://aaarwkj.com/article30/dohgso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、網(wǎng)站策劃、服務(wù)器托管軟件開發(fā)、小程序開發(fā)定制網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司
熟女亚洲一区精品久久| 日韩av一区二区久久久| 视频一区二区视频三区| 18禁免费无遮挡免费视频| 日本一级a级黄免视频| 自拍偷拍欧美日韩第一页| 在线观看午夜视频免费| av天堂久久人妻精品加勒比| 久久国产亚洲精品赲碰热| 国产精品福利手机在线观看| 日本午夜诱惑在线观看| 成人又黄又爽大片在线观看| 成人夜间视频在线观看| 日本黄色av一区二区| 日韩欧美国产亚洲在线| 黄片在线免费观看欧美中文 | 中文字幕人妻少妇美臀| 白白色发布青青在线视频观看| 欧美日韩一区二区三区色| 亚洲一区二区视频在线播放| 久久不卡高清免费av| 国产精品亚洲av性色| 国产美女口爆吞精久久| 在线中文字幕日韩精品| 国产内射一级一片高清视频观看| 日本黄色免费在线观看网站| 国产av毛片一区二区| 亚洲人妻av一区二区| 91人妻精品丰满少妇区| 韩国福利短片在线观看| 国产乱码免费一区二区三区| 欧美乱码中文字幕在线观看| 熟女精品国产一区二区三区| 射精视频在线观看免费| 自拍偷拍亚洲精品偷一| 日韩精品不卡在线观看| 在线观看男人的天堂av| 91麻豆亚洲国产成人久久精品| 亚洲欧美另类不卡专区| 亚洲激情av在线观看| 国产级一片内射视步页|