UI(二十七)數(shù)據(jù)解析

http-//blog.sina.com.cn/s/blog_6ae8b50d0101apja.html


數(shù)據(jù)解析:從事先規(guī)定好的格式中提取數(shù)據(jù)

//NSJSONSerialization?解析JSON數(shù)據(jù)

?//+ (nullable id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;解析JSON數(shù)據(jù)的方法


?#pragma mark ****JSON數(shù)據(jù)解析****

?一糊秆、JSON解析

?1葫辐、概念:Javaacript object Notation?輕量級的數(shù)據(jù)交換格式铆惑,采用完全獨(dú)立于語言的文本格式格带,被稱為理想的數(shù)據(jù)交換語言聚请,易與人閱讀和便攜坛猪,同時相同數(shù)據(jù)用JSON編輯所占的內(nèi)存更小

?2谐宙、結(jié)構(gòu)

?(1)對象掰邢、字典

?以‘{’開始以‘}’結(jié)束毒费,名稱和值之間用‘:’隔開丙唧。多個‘名稱/值’對之間用‘,’隔開。

?例如: {"name":"Jay","age":22}

?(2)數(shù)組

?以‘[’開始以‘]’結(jié)束,中間是數(shù)據(jù),數(shù)據(jù)用‘,’隔開觅玻。

?例如: ["Jay","二狗"]


?"字符串"--NSString類型;18--NSNumber類型;{}--NSDictionary;[]--NSArray

?3想际、實(shí)例

?4、解析方法

?(1)第三方框架:JSONKit溪厘、SBJSON胡本、TouchJSON

?(2)系統(tǒng)提供的解析方法:NSJSONSerialization

?#pragma mark ****XML數(shù)據(jù)解析****

?二、XML解析

?1畸悬、概念:可擴(kuò)展標(biāo)記語言

?2侧甫、XML數(shù)據(jù)結(jié)構(gòu)

?(1)

?<標(biāo)簽名> **開始標(biāo)簽

?...具體的值

? **結(jié)束標(biāo)簽? =字符串(相當(dāng)于字符串)

?(2)

?<標(biāo)簽名>

? ? <標(biāo)簽名1>888

? ? <標(biāo)簽名1>666

? =數(shù)組

?(3)

?<標(biāo)簽名>

<不同的標(biāo)簽名1>XXX

<不同的標(biāo)簽名2>KKK

? =?字典

?3、XML數(shù)據(jù)解析

?GDataXMLNode:用來解析XML文件

? (1)GDataXMLDocument?讀取文檔

? (2)GDataXMLElement?讀取文檔里面的元素 可以通過具體的方法轉(zhuǎn)換成OC需要的數(shù)據(jù)·1

?**使用GDataXMLNode

?1蹋宦、需要導(dǎo)入libxml2

?2披粟、需要在bulid setting -> header search paths ->添加/usr/include/libxml2





#pragma mark?---練習(xí)實(shí)戰(zhàn)---

NSString?*path = [[NSBundle mainBundle]pathForResource:@"name.txt"?ofType:nil];

?//NSData?可以存儲任意類型的數(shù)據(jù)

?NSData?*data = [NSData dataWithContentsOfFile:path];

?//NSJSONSerialization?解析JSON數(shù)據(jù)

?//+ (nullable id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;解析JSON數(shù)據(jù)的方法

#pragma mark ****JSON數(shù)據(jù)解析****

?//JSONObjectWithData這個方法返回值是ID類型 可以使用JSON數(shù)據(jù)中最外層的數(shù)據(jù)類型去接收

?NSArray?*list = [NSJSONSerialization JSONObjectWithData:data?options:NSJSONReadingMutableContainers error:nil];


?NSArray?*modelArray = [UserModel arrayOfModelsFromDictionaries:list?error:nil];

?UserModel?*model = modelArray[0];

?NSLog(@"%@",model.address);


#pragma mark ****XML數(shù)據(jù)解析****

?//1、讀取文件路徑冷冗、內(nèi)容

?NSString?*xmlpath = [[NSBundle mainBundle]pathForResource:@"github.xml"ofType:nil];

?NSString?*content = [NSString stringWithContentsOfFile:xmlpath?encoding:NSUTF8StringEncoding error:nil];

?NSLog(@"%@",content);

?//2守屉、通過GDataXMLDocument讀取XML文件

?GDataXMLDocument?*booksDocument = [[GDataXMLDocumentalloc]initWithXMLString:content?encoding:NSUTF8StringEncoding?error:nil];

?//取出XML里面最外層的元素

?//booksDocument.rootElement

?//讀取GDataXMLElement對應(yīng)的OC數(shù)據(jù)類型

?//- (NSArray *)elementsForName:(NSString *)name;?返回值是一個數(shù)組

?NSArray?*elements = [booksDocument.rootElement elementsForName:@"book"];

//? ? NSLog(@"%@",elements);//GDataXMLElement類型

?GDataXMLElement?*element = elements[0];

?NSArray?*nameElementList = [element?elementsForName:@"name"];

?NSString?*name = [nameElementList.firstObject stringValue];

?NSLog(@"%@",name);


?//info?具體書的內(nèi)容(名字 價格)

?NSMutableDictionary?*info = [NSMutableDictionary dictionary];

?//resultList解析完成之后的數(shù)組 存的字典

?NSMutableArray?*resultList = [NSMutableArray array];

?for?(GDataXMLElement?*element?inelements) {

?NSString?*name = [[element?elementsForName:@"name"].firstObject stringValue];

?NSString?*price = [[element?elementsForName:@"price"].firstObject stringValue];


[info?setObject:name?forKey:@"name"];

[info?setObject:price?forKey:@"price"];

[resultList?addObject:info];

? ? }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蒿辙,隨后出現(xiàn)的幾起案子拇泛,更是在濱河造成了極大的恐慌滨巴,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俺叭,死亡現(xiàn)場離奇詭異恭取,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)绪颖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門秽荤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人柠横,你說我怎么就攤上這事窃款。” “怎么了牍氛?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵晨继,是天一觀的道長。 經(jīng)常有香客問我搬俊,道長紊扬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任唉擂,我火速辦了婚禮餐屎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘玩祟。我一直安慰自己腹缩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布空扎。 她就那樣靜靜地躺著藏鹊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪转锈。 梳的紋絲不亂的頭發(fā)上盘寡,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機(jī)與錄音撮慨,去河邊找鬼竿痰。 笑死,一個胖子當(dāng)著我的面吹牛甫煞,可吹牛的內(nèi)容都是我干的菇曲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼抚吠,長吁一口氣:“原來是場噩夢啊……” “哼常潮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起楷力,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤喊式,失蹤者是張志新(化名)和其女友劉穎孵户,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體岔留,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夏哭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了献联。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片竖配。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖里逆,靈堂內(nèi)的尸體忽然破棺而出进胯,到底是詐尸還是另有隱情,我是刑警寧澤原押,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布胁镐,位于F島的核電站,受9級特大地震影響诸衔,放射性物質(zhì)發(fā)生泄漏盯漂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一笨农、第九天 我趴在偏房一處隱蔽的房頂上張望就缆。 院中可真熱鬧,春花似錦谒亦、人聲如沸违崇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至渣淳,卻和暖如春脾还,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背入愧。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工鄙漏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人棺蛛。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓怔蚌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親旁赊。 傳聞我的和親對象是個殘疾皇子桦踊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 29,392評論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,103評論 1 32
  • 在網(wǎng)絡(luò)開發(fā)中,從服務(wù)器獲取的二進(jìn)制數(shù)據(jù)包括: > html > 圖片 > 視頻 > 音頻 > zip 等 除了以上...
    方圓十里不留母狗閱讀 791評論 0 0
  • 面向?qū)ο笕笾е庋b:就是把相關(guān)的數(shù)據(jù)和代碼結(jié)合成一個有機(jī)的整體,形成數(shù)據(jù)和操作代碼的封裝體终畅,對外只提供一個可以控...
    WangDavid閱讀 1,682評論 0 2
  • 解析的概念 解析:從事先規(guī)定好的格式中提取數(shù)據(jù)籍胯。 解析的前提:提前約定好格式竟闪,數(shù)據(jù)提供方按照格式提供數(shù)據(jù),數(shù)據(jù)獲取...
    逗逗豆豆笑閱讀 1,157評論 2 14