自己寫的XML/JSON 解析全部代碼

處理XML按照如下的過程進行

NSData *xmlData = [[NSData alloc] initWithContentsOfFile:xmlFilePath];

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:xmlData];

以上的代碼是通過XML文件創(chuàng)建NSXMLParser對象,當然也可以直接通過URL創(chuàng)建:

NSURL *xmlUrl = [NSURL URLWithString:@"http://www.w3school.com/xml/note.xml"];

NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:xmlUrl];

指定NSXMLParser對象的委托對象,并實現(xiàn)委托協(xié)議

xmlParser.delegate = NSXMLParserDelegate;

解析XML 主要分為SAX和DOM,我主要使用NSXMLParser
這種屬于SAX解析;首先我們需要新建一個XML文件

下面看看解析的代碼:

運行效果截圖:

不知道怎么回事為啥我的中文不能顯示我用的是UTF-8的編碼啊!

下面看看JSON數(shù)據(jù)解析,因為沒有網(wǎng)絡數(shù)據(jù)所以只能自己寫一個JSON數(shù)據(jù)格式啦!新建一個JSON 數(shù)據(jù),JSON數(shù)據(jù)主要有數(shù)組和字典兩種方式來組合:

JSON 數(shù)據(jù)的解析有多種方式還有一些第三方的庫比如:SBJSON 等但是我在使用的NSJSONSerialization解析JSON 數(shù)據(jù),下面看看JSON數(shù)據(jù)的解析代碼和解析結(jié)果:

JSON 數(shù)據(jù)的解析結(jié)果:

JSON 解析中最常見的是序列化和反序列化小編在這里就使用了序列化和反序列化下面小編說一下這個JSON具體的解析過程:

程序首先加載personList.json文件,獲取JSON 數(shù)據(jù),然后調(diào)用NSJSONSerialization類的dataWithJSONObject: options:error:方法將JSON 數(shù)據(jù)反序列化為對象。由于JSON數(shù)據(jù)可知頂層對象是一個數(shù)組,所以我們將其轉(zhuǎn)型為NSArray.每一個數(shù)組成員是一個字典,所以可以通過調(diào)用字典的objectForKey:方法,傳入鍵名即可獲得對應的值。之后,程序有調(diào)用dataWithJSONObject: options:error:方法將對象序列化為JSON 數(shù)據(jù),最后在NSData對象上- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;實例方法,將其寫入到一個JSON的臨時文件中。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容