麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

iOS高級編程之XML,JSON數據解析

2019-11-14 19:03:20
字體:
來源:轉載
供稿:網友

解析的基本概念

所謂“解析”:從事先規定好的格式串中提取數據

解析的前提:提前約定好格式、數據提供方按照格式提供數據、數據獲取方按照格式獲取數據

iOS開發常見的解析:xml解析、JSON解析

 

一、XML數據結構

XML數據結構基本概念

XML:Extensible Markup language (可擴展標記語言),主流格式之一,可以用來存儲和傳輸數據格式之一,可以用來存儲和傳輸數據

 

XML數據格式的功能

1、數據交換

2、內容管理

3、用作配置文件

 

XML數據結構的語法

1、聲明

2、節點使用一對標簽表示

3、根節點是起始節點,只有一個。節點可以嵌套

4、節點可以有值,存儲在一對標簽中

 

如何進行XML解析

有以下兩種方法:

1、SAX解析

SAX:Simple API for XML .基于事件驅動的解析方式,逐行解析數據。(采用協議回調機制)

SAX解析XML,是基于事件通知的模式,一邊讀取XML文檔一邊處理,不必等整個文檔加載完之后才采取操作,SAX解析器會檢測整個XML樹形結構,你的代碼會控制它在哪里停止,使用哪些數據之類的事情。就是說,SAX可控制性強,占用內存小,適用于提取部分數據。當在讀取解析過程中遇到需要處理的對象,會發出通知對其進行處理,如果XML格式在某一處出現錯誤,前面的數據會被提取出來,錯誤后面數據的就顯示不出來。

 

NSXMLParse類是iOS自帶的XML解析類。采用SAX方式解析數據

解析過程由NSXMLParserDelegate協議方法回調

解析過程:開始標簽->取值->結束標簽->取值

代碼的實現過程是,首先我們建立一個XML文檔,并引入文件,如下:

其次我們建立一個表格試圖控制器TableViewController)

定義一個私有屬性數組datasource用來存儲模型數據和startTag屬性用來暫存起始標簽

 

同時在方法ViewDidLoad里面獲取文件數據并指定代理<NSXMLParserDelegate>//解析器協議,同時為對應的重用標識符注冊單元格的類型

 

NSXMLParserDelegate 解析器協議里面有如下方法:

 

 

 

 當XML在逐個解析文件數據時,由于起始標簽和結束標簽名字一樣,當解析到結束標簽時,為了避免解析到的結束標簽后面的內容將模型對象中的相應的屬性覆蓋,在解析結束標簽的方法內部將起始標簽置為nil

 

在每個方法內部我們同時打印了一下方法名,這樣我們就可以在輸出端清晰的看到方法的執行順序,

同時在表格的設置方法內部建立重建機制

 

 

在設置相應的行數和分區,我們就可以在模擬器上顯示出如下結果:

 

 

 

2、DOM工具解析

DOM:Document Object Model (文檔對象模型)。解析時需要將XML文件整體讀入,并且將XML結構化成樹狀,使用時再通過樹狀結構讀取相關數據,查找特定節點,然后對節點進行讀或寫。他的主要優勢是實現簡單,讀寫平衡;缺點是比較占內存,因為他要把整個xml文檔都讀入內存,文件越大,這種缺點就越明顯。當文件內容出現錯誤時,在輸入框內會標記出錯誤的位置

GDataXMLNode是Google提供的開元XML解析類,對libxml2.dylib進行了Objective-C的封裝,因此在使用GDataXML之前,你需要先導入libxml2

iOS中包含一個C語言的動態鏈接庫libxml2.dylib,解析速度比NSXMLParser快

 

二、JSON數據結構

 

JSON數據結構基本概念

javascript Object Notation ,輕量級的數據交換格式,采用完全獨立于語言的文本格式,被稱為理想的數據交換語言,易于人閱讀和便攜,同時也易于及其解析何程,由于JSON解析便捷、快速,并且相同數據用JSON編輯所占的內存更小,所以在iOS中我們我們使用JSON解析更加普遍。

 

JSON文檔有兩種結構:對象 、數據

對象:以“{“開始,以”}”結束,是“名稱/值”對兒的集合。名稱和值中間用“:”隔開。多個“名稱/值”對之間用“,”隔開。類似OC中的字典。

數組:以“["開始,以“]”結束,中間是數據。數據以“,”分割。

JSON中的數據類型:字符串、數值、BOOL、對象、數組。 

 例如:

 

 

JSON – OC 轉換對照表

 

 JSON數據結構的功能

1、數據交換

2、內容管理

3、配置文件

 

 

JSON解析方案

 

在iOS中,JSON的常見解析方案有4種 
第三方框架:JSONKit、SBJson、TouchJSON(性能從左到右,越差)  
蘋果原生(自帶):NSJSONSerialization(性能最好)

 

 

 

下面是NSJSONSerialization解析過程: 

 

 

 

 

  

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产资源在线观看视频 | 精品一区二区三区日本 | 羞羞羞网站 | 污片视频在线观看 | 黄色片网站在线免费观看 | 九九热免费在线观看 | 91综合在线观看 | 欧洲成人av | 欧美日本综合 | 一级做受毛片免费大片 | 欧美乱淫| 久久精品日本一区 | 国产精品午夜未成人免费观看 | 免费嗨片首页中文字幕 | 色婷婷久久久 | 久色视频网站 | fc2成人免费人成在线观看播放 | 亚洲国产一区二区三区 | 精品黑人一区二区三区国语馆 | 噜噜噜躁狠狠躁狠狠精品视频 | 欧美精品色精品一区二区三区 | 欧美一级精品片在线看 | 亚洲va久久久噜噜噜久久男同 | 视频在线亚洲 | 久久久久二区 | 日本在线播放一区二区三区 | 国产99视频精品免视看9 | 国产成人视屏 | 欧美 日韩 中文 | 一本色道久久久888 国产一国产精品一级毛片 国产精品高潮视频 | 免费99热在线观看 | 一级毛片真人免费播放视频 | 国产欧美精品一区二区三区四区 | 成年性羞羞视频免费观看无限 | 欧美一区二区精品夜夜嗨 | 午夜男人在线观看 | 亚洲国产精品500在线观看 | 国产精品一区二区三区在线播放 | 午夜精品视频免费观看 | 99精品视频网站 | 久久久久久久久久久综合 |