之前做過(guò)相關(guān)的App,網(wǎng)上搜出來(lái)的,直接粘貼了。有用請(qǐng)采納哦~
網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營(yíng)銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺(jué)化效果。
國(guó)家氣象局提供的天氣預(yù)報(bào)接口
接口地址:
對(duì)于第三個(gè)接口,返回信息比較全面,也是以json格式提供,格式如下
{"weatherinfo": {//基本信息;"city":"北京","city_en":"beijing","date_y":"2012年2月16日", "date":"", "week":"星期四", "fchh":"11", "cityid":"101010100",//攝氏溫度"temp1":"2℃~-7℃","temp2":"1℃~-7℃","temp3":"4℃~-7℃","temp4":"7℃~-5℃","temp5":"5℃~-3℃","temp6":"5℃~-2℃",//華氏溫度;"tempF1":"35.6℉~19.4℉","tempF2":"33.8℉~19.4℉","tempF3":"39.2℉~19.4℉","tempF4":"44.6℉~23℉","tempF5":"41℉~26.6℉","tempF6":"41℉~28.4℉",//天氣描述;"weather1":"晴","weather2":"晴","weather3":"晴","weather4":"晴轉(zhuǎn)多云","weather5":"多云","weather6":"多云轉(zhuǎn)陰",//天氣描述圖片序號(hào)"img1":"0","img2":"99","img3":"0","img4":"99","img5":"0","img6":"99","img7":"0","img8":"1","img9":"1","img10":"99","img11":"1","img12":"2","img_single":"0",//圖片名稱;"img_title1":"晴","img_title2":"晴","img_title3":"晴","img_title4":"晴","img_title5":"晴","img_title6":"晴","img_title7":"晴","img_title8":"多云","img_title9":"多云","img_title10":"多云","img_title11":"多云","img_title12":"陰","img_title_single":"晴",//風(fēng)速描述"wind1":"北風(fēng)3-4級(jí)轉(zhuǎn)微風(fēng)","wind2":"微風(fēng)","wind3":"微風(fēng)","wind4":"微風(fēng)","wind5":"微風(fēng)","wind6":"微風(fēng)",//風(fēng)速級(jí)別描述"fx1":"北風(fēng)","fx2":"微風(fēng)","fl1":"3-4級(jí)轉(zhuǎn)小于3級(jí)","fl2":"小于3級(jí)","fl3":"小于3級(jí)","fl4":"小于3級(jí)","fl5":"小于3級(jí)","fl6":"小于3級(jí)",//今天穿衣指數(shù);"index":"冷","index_d":"天氣冷,建議著棉衣、皮夾克加羊毛衫等冬季服裝。年老體弱者宜著厚棉衣或冬大衣。",//48小時(shí)穿衣指數(shù)"index48":"冷","index48_d":"天氣冷,建議著棉衣、皮夾克加羊毛衫等冬季服裝。年老體弱者宜著厚棉衣或冬大衣。",//紫外線及48小時(shí)紫外線"index_uv":"弱","index48_uv":"弱",//洗車"index_xc":"適宜",//旅游"index_tr":"一般",//舒適指數(shù)"index_co":"較不舒適","st1":"1","st2":"-8","st3":"2","st4":"-4","st5":"5","st6":"-5",//晨練"index_cl":"較不宜",//晾曬"index_ls":"基本適宜",//過(guò)敏"index_ag":"極不易發(fā)"}}
全國(guó)各城市代碼如下:
北京:101010100朝陽(yáng):101010300順義:101010400懷柔:101010500通州:101010600昌平:101010700延慶:101010800豐臺(tái):101010900石景山:101011000大興:101011100房山:101011200密云:101011300門頭溝:101011400平谷:101011500八達(dá)嶺:101011600佛爺頂:101011700湯河口:101011800密云上甸子:101011900齋堂:101012000霞云嶺:101012100北京城區(qū):101012200海淀:101010200天津:101030100寶坻:101030300東麗:101030400西青:101030500北辰:101030600薊縣:101031400漢沽:101030800靜海:101030900津南:101031000塘沽:101031100大港:101031200武清:101030200寧河:101030700上海:101020100寶山:101020300嘉定:101020500南匯:101020600浦東:101021300青浦:101020800松江:101020900奉賢:101021000崇明:101021100徐家匯:101021200閔行:101020200金山:101020700石家莊:101090101張家口:101090301承德:101090402唐山:101090501秦皇島:101091101滄州:101090701衡水:101090801邢臺(tái):101090901邯鄲:101091001保定:101090201廊坊:101090601鄭州:101180101新鄉(xiāng):101180301許昌:101180401平頂山:101180501信陽(yáng):101180601南陽(yáng):101180701開封:101180801洛陽(yáng):101180901商丘:101181001焦作:101181101鶴壁:101181201濮陽(yáng):101181301周口:101181401漯河:101181501駐馬店:101181601三門峽:101181701濟(jì)源:101181801安陽(yáng):101180201合肥:101220101蕪湖:101220301淮南:101220401馬鞍山:101220501安慶:101220601宿州:101220701阜陽(yáng):101220801亳州:101220901黃山:101221001滁州:101221101淮北:101221201銅陵:101221301宣城:101221401六安:101221501巢湖:101221601池州:101221701蚌埠:101220201杭州:101210101舟山:101211101湖州:101210201嘉興:101210301金華:101210901紹興:101210501臺(tái)州:101210601溫州:101210701麗水:101210801衢州:101211001寧波:101210401重慶:101040100合川:101040300南川:101040400江津:101040500萬(wàn)盛:101040600渝北:101040700北碚:101040800巴南:101040900長(zhǎng)壽:101041000黔江:101041100萬(wàn)州天城:101041200萬(wàn)州龍寶:101041300涪陵:101041400開縣:101041500城口:101041600云陽(yáng):101041700巫溪:101041800奉節(jié):101041900巫山:101042000潼南:101042100墊江:101042200梁平:101042300忠縣:101042400石柱:101042500大足:101042600榮昌:101042700銅梁:101042800璧山:101042900豐都:101043000武隆:101043100彭水:101043200綦江:101043300酉陽(yáng):101043400秀山:101043600沙坪壩:101043700永川:101040200福州:101230101泉州:101230501漳州:101230601龍巖:101230701晉江:101230509南平:101230901廈門:101230201寧德:101230301莆田:101230401三明:101230801蘭州:101160101平?jīng)?101160301慶陽(yáng):101160401武威:101160501金昌:101160601嘉峪關(guān):101161401酒泉:101160801天水:101160901武都:101161001臨夏:101161101合作:101161201白銀:101161301定西:101160201張掖:101160701廣州:101280101惠州:101280301梅州:101280401汕頭:101280501深圳:101280601珠海:101280701佛山:101280800肇慶:101280901湛江:101281001江門:101281101河源:101281201清遠(yuǎn):101281301云浮:101281401潮州:101281501東莞:101281601中山:101281701陽(yáng)江:101281801揭陽(yáng):101281901茂名:101282001汕尾:101282101韶關(guān):101280201南寧:101300101柳州:101300301來(lái)賓:101300401桂林:101300501梧州:101300601防城港:101301401貴港:101300801玉林:101300901百色:101301001欽州:101301101河池:101301201北海:101301301崇左:101300201賀州:101300701貴陽(yáng):101260101安順:101260301都勻:101260401興義:101260906銅仁:101260601畢節(jié):101260701六盤水:101260801遵義:101260201凱里:101260501昆明:101290101紅河:101290301文山:101290601玉溪:101290701楚雄:101290801普洱:101290901昭通:101291001臨滄:101291101怒江:101291201香格里拉:101291301麗江:101291401德宏:101291501景洪:101291601大理:101290201曲靖:101290401保山:101290501呼和浩特:101080101烏海:101080301集寧:101080401通遼:101080501阿拉善左旗:101081201鄂爾多斯:101080701臨河:101080801錫林浩特:101080901呼倫貝爾:101081000烏蘭浩特:101081101包頭:101080201赤峰:101080601南昌:101240101上饒:101240301撫州:101240401宜春:101240501鷹潭:101241101贛州:101240701景德鎮(zhèn):101240801萍鄉(xiāng):101240901新余:101241001九江:101240201吉安:101240601武漢:101200101黃岡:101200501荊州:101200801宜昌:101200901恩施:101201001十堰:101201101神農(nóng)架:101201201隨州:101201301荊門:101201401天門:101201501仙桃:101201601潛江:101201701襄樊:101200201鄂州:101200301孝感:101200401黃石:101200601咸寧:101200701成都:101270101自貢:101270301綿陽(yáng):101270401南充:101270501達(dá)州:101270601遂寧:101270701廣安:101270801巴中:101270901瀘州:101271001宜賓:101271101內(nèi)江:101271201資陽(yáng):101271301樂(lè)山:101271401眉山:101271501涼山:101271601雅安:101271701甘孜:101271801阿壩:101271901德陽(yáng):101272001廣元:101272101攀枝花:101270201銀川:101170101中衛(wèi):101170501固原:101170401石嘴山:101170201吳忠:101170301西寧:101150101黃南:101150301海北:101150801果洛:101150501玉樹:101150601海西:101150701海東:101150201海南:101150401濟(jì)南:101120101濰坊:101120601臨沂:101120901菏澤:101121001濱州:101121101東營(yíng):101121201威海:101121301棗莊:101121401日照:101121501萊蕪:101121601聊城:101121701青島:101120201淄博:101120301德州:101120401煙臺(tái):101120501濟(jì)寧:101120701泰安:101120801西安:101110101延安:101110300榆林:101110401銅川:101111001商洛:101110601安康:101110701漢中:101110801寶雞:101110901咸陽(yáng):101110200渭南:101110501太原:101100101臨汾:101100701運(yùn)城:101100801朔州:101100901忻州:101101001長(zhǎng)治:101100501大同:101100201陽(yáng)泉:101100301晉中:101100401晉城:101100601呂梁:101101100烏魯木齊:101130101石河子:101130301昌吉:101130401吐魯番:101130501庫(kù)爾勒:101130601阿拉爾:101130701阿克蘇:101130801喀什:101130901伊寧:101131001塔城:101131101哈密:101131201和田:101131301阿勒泰:101131401阿圖什:101131501博樂(lè):101131601克拉瑪依:101130201拉薩:101140101山南:101140301阿里:101140701昌都:101140501那曲:101140601日喀則:101140201林芝:101140401臺(tái)北縣:101340101高雄:101340201臺(tái)中:101340401海口:101310101三亞:101310201東方:101310202臨高:101310203澄邁:101310204儋州:101310205昌江:101310206白沙:101310207瓊中:101310208定安:101310209屯昌:101310210瓊海:101310211文昌:101310212保亭:101310214萬(wàn)寧:101310215陵水:101310216西沙:101310217南沙島:101310220樂(lè)東:101310221五指山:101310222瓊山:101310102長(zhǎng)沙:101250101株洲:101250301衡陽(yáng):101250401郴州:101250501常德:101250601益陽(yáng):101250700婁底:101250801邵陽(yáng):101250901岳陽(yáng):101251001張家界:101251101懷化:101251201黔陽(yáng):101251301永州:101251401吉首:101251501湘潭:101250201南京:101190101鎮(zhèn)江:101190301蘇州:101190401南通:101190501揚(yáng)州:101190601宿遷:101191301徐州:101190801淮安:101190901連云港:101191001常州:101191101泰州:101191201無(wú)錫:101190201鹽城:101190701哈爾濱:101050101牡丹江:101050301佳木斯:101050401綏化:101050501黑河:101050601雙鴨山:101051301伊春:101050801大慶:101050901七臺(tái)河:101051002雞西:101051101鶴崗:101051201齊齊哈爾:101050201大興安嶺:101050701長(zhǎng)春:101060101延吉:101060301四平:101060401白山:101060901白城:101060601遼源:101060701松原:101060801吉林:101060201通化:101060501沈陽(yáng):101070101鞍山:101070301撫順:101070401本溪:101070501丹東:101070601葫蘆島:101071401營(yíng)口:101070801阜新:101070901遼陽(yáng):101071001鐵嶺:101071101朝陽(yáng):101071201盤錦:101071301大連:101070201錦州:101070701
1. XML接口 這個(gè)是全國(guó)天氣的根節(jié)點(diǎn),列出所有的省,其中的pyName字段是各個(gè)省XML的文件名,比如北京的是beijing,那就意味著北京的XML地址為 一個(gè)省的天氣,其中列出該省各個(gè)市的數(shù)據(jù),北京就列出各個(gè)區(qū)。 tmp1是最低溫低,tmp2是最高溫度,url非常重要,我們一會(huì)兒再說(shuō)。state1和state2是神馬轉(zhuǎn)神馬,每個(gè)數(shù)代表一個(gè)天氣現(xiàn)象。天氣現(xiàn)象非常多,我本想全部分析出來(lái),后來(lái)直接放棄了這個(gè)想法。因?yàn)槲铱吹搅艘粋€(gè)城市的天氣現(xiàn)象的編碼是26...我現(xiàn)在知道的有0.晴 1.多云 2.陰 6.雨夾雪 7.小雨 8.中雨 13.陣雪 14.小雪 其中后來(lái)發(fā)現(xiàn)知道這個(gè)沒(méi)用,這個(gè)數(shù)字的主要作用是檢索圖片的?。。?/p>
2. 圖片接口 這個(gè)圖就是天氣現(xiàn)象0(晴)的圖片,其他天氣現(xiàn)象的圖片依此類推。c打頭的圖片是20*20像素的,b打頭的是50*46像素的,d打頭的是反白的圖標(biāo),29*20像素,n打頭的是夜間反白圖標(biāo),29*20像素,注意這里的文件名是兩位數(shù)字! 也許還有更多的圖標(biāo),等待大家發(fā)掘啦~
3. JSON接口 真沒(méi)想到~居然有JSON接口~JSON在iPhone上分析起來(lái)要比XML簡(jiǎn)單很多 這個(gè)是北京的JSON數(shù)據(jù),那個(gè)HTML的名字是根據(jù)上文XML中的url得到的。這個(gè)JSON中包含了實(shí)時(shí)數(shù)據(jù)、7天天氣預(yù)報(bào)、氣象指數(shù)等豐富的數(shù)據(jù)
獲取省級(jí)代碼:獲取城市代碼(比如安徽是22):獲取區(qū)域代碼(比如安慶是2206):獲取到安徽省安慶市望江縣的代碼是220607然后去加上中國(guó)代碼請(qǐng)求URL:就可以獲取當(dāng)?shù)靥鞖狻?/p>
另外再給幾個(gè)有用的探索得到的URL:天氣 FLASH實(shí)況:實(shí)況FLASH:
三級(jí)選擇菜單(注明,這里有四個(gè)INPUT,其中有一個(gè)被隱藏了,可用FIREFOX改下源代碼查看):
實(shí)時(shí)天氣(很有用哦):
1. XML接口
這個(gè)是全國(guó)天氣的根節(jié)點(diǎn),列出所有的省,其中的pyName字段是各個(gè)省XML的文件名,比如北京的是beijing,那就意味著北京的XML地址為
一個(gè)省的天氣,其中列出該省各個(gè)市的數(shù)據(jù),北京就列出各個(gè)區(qū)。
tmp1是最低溫低,tmp2是最高溫度,url非常重要,我們一會(huì)兒再說(shuō)。state1和state2是神馬轉(zhuǎn)神馬,每個(gè)數(shù)代表一個(gè)天氣現(xiàn) 象。天氣現(xiàn)象非常多,我本想全部分析出來(lái),后來(lái)直接放棄了這個(gè)想法。因?yàn)槲铱吹搅艘粋€(gè)城市的天氣現(xiàn)象的編碼是26...我現(xiàn)在知道的有0.晴 1.多云 2.陰 6.雨夾雪 7.小雨 8.中雨 13.陣雪 14.小雪
其中后來(lái)發(fā)現(xiàn)知道這個(gè)沒(méi)用,這個(gè)數(shù)字的主要作用是檢索圖片的?。?!
2. 圖片接口
這個(gè)圖就是天氣現(xiàn)象0(晴)的圖片,其他天氣現(xiàn)象的圖片依此類推。c打頭的圖片是20*20像素的,b打頭的是50*46像素的,d打頭的是反白的圖標(biāo),29*20像素,n打頭的是夜間反白圖標(biāo),29*20像素,注意這里的文件名是兩位數(shù)字!
3. JSON接口
氣象數(shù)據(jù)開放平臺(tái) 氣象數(shù)據(jù)開放平臺(tái)是中國(guó)氣象局面向網(wǎng)絡(luò)媒體、手機(jī)廠商、第三方氣象服務(wù)機(jī)構(gòu)等用戶,通過(guò)web方式提供數(shù)據(jù)氣象服務(wù)的官方載體。是國(guó)內(nèi)首個(gè)面向個(gè)人網(wǎng)站、開發(fā)愛(ài)好者和服務(wù)機(jī)構(gòu)的氣象服務(wù)API.
之前做過(guò)的項(xiàng)目就是采用的這一個(gè)
作為一種輕量級(jí)的數(shù)據(jù)交換格式,json正在逐步取代xml,成為網(wǎng)絡(luò)數(shù)據(jù)的通用格式。
有的json代碼格式比較混亂,可以使用此“”網(wǎng)站來(lái)進(jìn)行JSON格式化校驗(yàn)(點(diǎn)擊打開鏈接)。此網(wǎng)站不僅可以檢測(cè)Json代碼中的錯(cuò)誤,而且可以以視圖形式顯示json中的數(shù)據(jù)內(nèi)容,很是方便。
從IOS5開始,APPLE提供了對(duì)json的原生支持(NSJSONSerialization),但是為了兼容以前的ios版本,可以使用第三方庫(kù)來(lái)解析Json。
本文將介紹TouchJson、 SBJson 、JSONKit 和 iOS5所支持的原生的json方法,解析國(guó)家氣象局API,TouchJson和SBJson需要下載他們的庫(kù)
TouchJson包下載:
SBJson 包下載:
JSONKit包下載:
下面的完整程序源碼包下載:
PS:
國(guó)家氣象局提供的天氣預(yù)報(bào)接口
接口地址有三個(gè):
第三接口信息較為詳細(xì),提供的是6天的天氣,關(guān)于API所返回的信息請(qǐng)見(jiàn)開源免費(fèi)天氣預(yù)報(bào)接口API以及全國(guó)所有地區(qū)代碼?。。▏?guó)家氣象局提供),全國(guó)各城市對(duì)應(yīng)這一個(gè)id號(hào),根據(jù)改變id好我們就可以解析出來(lái)各個(gè)城市對(duì)應(yīng)天氣;
下面介紹四種方法解析JSON:
首先建立一個(gè)新的工程,(注意不要選擇ARC機(jī)制)添加如下控件:
如上圖所示。下面展出程序代碼:
文件 ViewController.h 中:
[cpp] view plaincopy
#import UIKit/UIKit.h
@interface ViewController : UIViewController
@property (retain, nonatomic) IBOutlet UITextView *txtView;
- (IBAction)btnPressTouchJson:(id)sender;
- (IBAction)btnPressSBJson:(id)sender;
- (IBAction)btnPressIOS5Json:(id)sender;
- (IBAction)btnPressJsonKit:(id)sender;
@end
文件ViewController.m中主要代碼:
(1)使用TouchJSon解析方法:(需導(dǎo)入包:#import "TouchJson/JSON/CJSONDeserializer.h")
[cpp] view plaincopy
//使用TouchJson來(lái)解析北京的天氣
- (IBAction)btnPressTouchJson:(id)sender {
//獲取API接口
NSURL *url = [NSURL URLWithString:@""];
//定義一個(gè)NSError對(duì)象,用于捕獲錯(cuò)誤信息
NSError *error;
NSString *jsonString = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:error];
NSLog(@"jsonString---%@",jsonString);
//將解析得到的內(nèi)容存放字典中,編碼格式為UTF8,防止取值的時(shí)候發(fā)生亂碼
NSDictionary *rootDic = [[CJSONDeserializer deserializer] deserialize:[jsonString dataUsingEncoding:NSUTF8StringEncoding] error:error];
//因?yàn)榉祷氐腏son文件有兩層,去第二層內(nèi)容放到字典中去
NSDictionary *weatherInfo = [rootDic objectForKey:@"weatherinfo"];
NSLog(@"weatherInfo---%@",weatherInfo);
//取值打印
txtView.text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天氣狀況是:%@ %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]];
}
(2)使用SBJson解析方法:(需導(dǎo)入包:#import "SBJson/SBJson.h")
[cpp] view plaincopy
//使用SBJson解析南陽(yáng)的天氣
- (IBAction)btnPressSBJson:(id)sender {
NSURL *url = [NSURL URLWithString:@""];
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"];
txtView.text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天氣狀況是:%@ %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]];
}
(3)使用IOS5自帶解析類NSJSONSerialization方法解析:(無(wú)需導(dǎo)入包,IOS5支持,低版本IOS不支持)
[cpp] view plaincopy
- (IBAction)btnPressIOS5Json:(id)sender {
NSError *error;
//加載一個(gè)NSURL對(duì)象
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@""]];
//將請(qǐng)求的url數(shù)據(jù)放到NSData對(duì)象中
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
//IOS5自帶解析類NSJSONSerialization從response中解析出數(shù)據(jù)放到字典中
NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:error];
NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];
txtView.text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天氣狀況是:%@ %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]];
NSLog(@"weatherInfo字典里面的內(nèi)容為--》%@", weatherDic );
}
(4)使用JSONKit的解析方法:(需導(dǎo)入包:#import "JSONKit/JSONKit.h")
[cpp] view plaincopy
- (IBAction)btnPressJsonKit:(id)sender {
//如果json是“單層”的,即value都是字符串、數(shù)字,可以使用objectFromJSONString
NSString *json1 = @"{\"a\":123, \"b\":\"abc\"}";
NSLog(@"json1:%@",json1);
NSDictionary *data1 = [json1 objectFromJSONString];
NSLog(@"json1.a:%@",[data1 objectForKey:@"a"]);
NSLog(@"json1.b:%@",[data1 objectForKey:@"b"]);
[json1 release];
//如果json有嵌套,即value里有array、object,如果再使用objectFromJSONString,程序可能會(huì)報(bào)錯(cuò)(測(cè)試結(jié)果表明:使用由網(wǎng)絡(luò)或得到的php/json_encode生成的json時(shí)會(huì)報(bào)錯(cuò),但使用NSString定義的json字符串時(shí),解析成功),最好使用objectFromJSONStringWithParseOptions:
NSString *json2 = @"{\"a\":123, \"b\":\"abc\", \"c\":[456, \"hello\"], \"d\":{\"name\":\"張三\", \"age\":\"32\"}}";
NSLog(@"json2:%@", json2);
NSDictionary *data2 = [json2 objectFromJSONStringWithParseOptions:JKParseOptionLooseUnicode];
NSLog(@"json2.c:%@", [data2 objectForKey:@"c"]);
NSLog(@"json2.d:%@", [data2 objectForKey:@"d"]);
[json2 release];
}
另外,由于iOS5新增了JSON解析的API,我們將其和其他五個(gè)開源的JSON解析庫(kù)進(jìn)行了解析速度的測(cè)試,下面是測(cè)試的結(jié)果。
我們選擇的測(cè)試對(duì)象包含下面的這幾個(gè)框架,其中NSJSONSerialization是iOS5系統(tǒng)新增的JSON解析的API,需要iOS5的環(huán)境,如果您在更低的版本進(jìn)行測(cè)試,應(yīng)該屏蔽相應(yīng)的代碼調(diào)用。
- [SBJSON (json-framework)]()
- [TouchJSON (from touchcode)]()
- [YAJL (objective-C bindings)]()
- [JSONKit]()
- [NextiveJson]()
-[NSJSONSerialization]()
我們選擇了四個(gè)包含json格式的數(shù)據(jù)的文件進(jìn)行測(cè)試。每一個(gè)文件進(jìn)行100的解析動(dòng)作,對(duì)解析的時(shí)間進(jìn)行比較。
.....
測(cè)試的結(jié)果顯示,系統(tǒng)的API的解析速度最快,我們?cè)诠こ添?xiàng)目中選擇使用,也是應(yīng)用較為廣泛的SBJSON的解析速度為倒數(shù)第二差,令我大跌眼鏡。
與系統(tǒng)API較為接近的應(yīng)該是JSONKit。
這里沒(méi)有對(duì)API的開放接口和使用方式進(jìn)行比較,若單純基于以上解析速度的測(cè)試:
1:iOS5應(yīng)該選擇系統(tǒng)的API進(jìn)行
2:不能使用系統(tǒng)API的應(yīng)該選擇JSONKit
解決方案來(lái)源于網(wǎng)絡(luò),但是我看了,沒(méi)有問(wèn)題。還是建議采用第三種蘋果自帶方法解決這個(gè)問(wèn)題。
參考:
文章名稱:ios開發(fā)天氣預(yù)報(bào)接口,ios開發(fā)天氣預(yù)報(bào)接口的軟件
瀏覽地址:http://chinadenli.net/article10/dsshigo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、云服務(wù)器、移動(dòng)網(wǎng)站建設(shè)、做網(wǎng)站、建站公司、自適應(yīng)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)