JSON 和 XML 解析

"JSON解析"JSON是一種輕量級的數據格式,服務器返回給客戶端的數據一般都是JSON格式或者XML格式。文件下載除外。JSON格式很想OC中的餓字典和數組。注意:標準JSON格式的key必須是雙引號""

JSON和OC對象之間的對應關系:{字典}、[數組]、"字符串"

10/10.1-> NSNumber

true/false-> NSNumber

null -> NSNull

JSON的解析方案:第三方框架和蘋果原生。蘋果原生的NSJSONSerialization是性能最好的。

1,JSON ——> OC:反序列化

在NSURLSession返回的響應的block塊中,解析返回的data數據

[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

2,OC ——> JSON:序列化

可以先判斷當前對象能否轉為JSON:+ (BOOL)isValidJSONObject:(id)obj;

NSData *data = [NSJSONSerialization dataWithJSONObject:dictM options:NSJSONWritingPrettyPrinted error:nil];

"XML解析":可擴展標記語言。XML文檔的三部分,聲明、元素、和屬性。

XML解析工具:第三方框架和蘋果原生。蘋果原生:NSXMLParser,使用SAX方式解析,按順序一個元素一個元素的往下解析,可用于解析大、小文件

注意點:1,注意不能交叉包含。2,空格也算內容。3,標準的XML只有一個根元素。

解析步驟:

使用NSXMLParser解析,和代理方法。

1,創建一個解析器。

NSXMLParser *parser = [[NSXMLParser alloc]initWithData:data];

2,設置代理。

parser.delegate =self;

3,開始解析。

[parser parse];

代理方法:

-(void)parserDidStartDocument:(nonnullNSXMLParser *)parser//開始解析XML文檔的時候調用。

-(void)parser:(nonnullNSXMLParser *)parser didStartElement:(nonnullNSString *)elementName namespaceURI:(nullableNSString *)namespaceURI qualifiedName:(nullableNSString *)qName attributes:(nonnullNSDictionary *)attributeDict {//開始解析XML中某個元素的時候調用,

if([elementName isEqualToString:@"videos"]) {

return;

}

//字典轉模型

XMGVideo *video = [XMGVideo objectWithKeyValues:attributeDict];

[self.videos addObject:video];

}

-(void)parser:(nonnullNSXMLParser *)parser didEndElement:(nonnullNSString *)elementName namespaceURI:(nullableNSString *)namespaceURI qualifiedName:(nullableNSString *)qName//當某個元素解析完成之后調用。

-(void)parserDidEndDocument:(nonnullNSXMLParser *)parser// XML文檔解析結束之后調用。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • JSON JSON和XML都是需要解析的 JSON是一種輕量級的數據格式,一般用于數據交互服務器返回給客戶端的數據...
    JonesCxy閱讀 1,883評論 2 10
  • 效果圖 一、本文章主要介紹 JSON XML兩種數據解析方式 1.JSON 包括系統方法的JSON ,以及三方JS...
    有緣人2830閱讀 939評論 0 3
  • 一 、 JSON解析(1.是什么 2.為什么 3.怎么用 4.優缺點) 1. JSON是什么 1)是一種輕量級的...
    fjytqiu閱讀 603評論 0 1
  • 使用NSURLConnection來請求數據 JSON數據的請求 現在大多情況下都使用三方框架來完成的 l在iOS...
    iamgaoshuai閱讀 599評論 0 1
  • JSON 和 XML 一、JSON 1.什么是JSON JSON是一種輕量級的數據格式,一般用于數據交互服務器返回...
    妳是我的天使閱讀 370評論 0 3