這篇主要總結在iOS開發中xml/JSON數據解析過程用到的方法。XML數據解析主要使用SAX方式的NSXMLParser以及DOM方式的GDataXML,JSON數據解析主要使用NSJSONSerialization。
NSXMLParser是iOS原生的XML解析方式,采用SAX方式進行解析,特點是解析的時候從根元素開始,按順序依次對每一個元素進行解析。
以下圖所示XML文檔為例進行解析
(1)首先是實例化一個NSXMLParser,設置代理監聽解析過程,開始解析
(2)通過NSXMLParser代理方法對XML文檔進行解析
(3)解析效果
GDataXML是谷歌制作的一個解析XML數據的類庫,基于libxml2,特點是以DOM方式解析,會把XML文檔數據一次性加載到內存中,再對數據進行解析。
下載地址:https://github.com/neonichu/GDataXML
還是使用上一節用到的XML文檔為例,使用前需要進行配置
(1)設置頭文件路徑
(2)設置鏈接參數
(3)設置編譯參數(GDataXML是非arc的)
加載整個XML文檔,對元素進行遍歷解析即可
JSON數據格式有如下要求,故得到數據后進行對應解析即可,在開發中常用的是將JSON解析為Foundation對象
拿到JSON數據直接使用NSJSONSerialization解析即可
對于JSON字符串最外層既不是NSArray也不是NSDictionary時,option選擇NSJSONReadingAllowFragments即可
新聞熱點
疑難解答