本讲内容
一、解析的基本概念
二、XML数据结构
三、JSON数据结构
四、XML与JSON两种数据结构的优缺点
五、进⾏行XML数据结构解析时使⽤用到的SAX⼯工具,DOM⼯工具
六、进⾏行JSON数据结构解析时使⽤用到的第三⽅方框架
一、解析的基本概念
解析的概念
所谓“解析”:从事先规定好的格式中提取数据解析的前提:提前约定好格式、数据提供⽅方按照格式提供数据、
数据获取⽅方则按照格式获取数据iOS开发常⻅见的解析:XML解析、JSON解析
二、XML数据结构
XML基本概念
XML:Extensible Markup language(可扩展标记语⾔言),主流数据格式之⼀一,可以⽤用来存储和传输数据。
XML数据格式的功能
数据交换
内容管理
⽤用作配置⽂文件
XML数据结构的语法
声明
节点使⽤用⼀一对标签表⽰示。起始和结束标签。
根节点是起始节点,只有⼀一个。节点可以嵌套。
节点可以有值。存储在⼀一对⼉儿标签中。
⽰示例
⽰示例
三、进⾏行XML解析时使⽤用到的SAX⼯工具
SAX解析
SAX:Simple API for XML。基于事件驱动的解析⽅方式,逐⾏行解析数据。(采⽤用协议回调机制)
NSXMLParser类
NSXMLParser是iOS⾃自带的XML解析类。采⽤用SAX⽅方式解析数据。
解析过程由NSXMLParserDelegate协议⽅方法回调
解析过程:开始标签->取值->结束标签->取值代码演⽰示
四、进⾏行XML解析时使⽤用到的DOM⼯工具
DOM解析
DOM:Document Object Model(⽂文档对象模型)。解析时需要
将XML⽂文件整体读⼊入,并且将XML结构化成树状,使⽤用时再通过树状结构读取相关数据
GDataXMLNodeGDataXMLNode是Google提供的开源XML解析类,对
libxml2.dylib进⾏行了Objective-C的封装
采⽤用DOM⽅方式解析数据
iOS中包含⼀一个C语⾔言的动态链接库libxml2.dylib,解析速度⽐比NSXMLParser快
代码演⽰示
五、JSON数据结构
JSON数据结构的概念
Javascript Object Notation,轻量级的数据交换格式,采⽤用完全独⽴立于语⾔言的⽂文本格式,被称为理想的数据交换语⾔言
JSON数据结构的语法JSON⽂文档有两种结构:对象、数据
对象:以“{”开始,以“}”结束,是“名称/值”对⼉儿的集合。名称和值中间⽤用“:”隔开。多个“名称/值”对之间⽤用“,”隔开。类似OC中的字典。
数组:以“[”开始,以“]”结束,中间是数据。数据以“,”分隔。JSON中的数据类型:字符串、数值、BOOL、对象、数组。
示例
JSON数据结构的功能
数据交换
内容管理
配置⽂文件
六、使⽤用Foundation进⾏行JSON解析
NSJSONSerializationNSJSONSerialization对象的作⽤用
七、使⽤用JSONKit进⾏行JSON解析
使⽤用JSONKit
JSONDecoder对象的作⽤
NSString(JSONKitDeserializing)类目的作⽤
NSData(JSONKitDeserializing)类目的作⽤
NSString(JSONKitSerializing)类目的作⽤
NSArray(JSONKitSerializing)类目的作用
NSDictionary(JSONKitSerializing)类目的作用
总结数据解析:从某种格式的数据中提取⾃自⼰己所需要的数据。
主流的数据交换格式有两种:XML和JSONXML解析分为两种:SAX解析和DOM解析XML解析⼯工具:NSXMLParser、GDataXMLNode、TochXML和KissXML等
JSON解析⼯工具:JSONKit、NSJSONSerialization、TouchJSON和SBJSON等,其中NSJSONSerialization是系统提供的解析类,其解析效率是最⾼高的
课程预告
HTTP协议的概念HTTP协议的常⻅见请求⽅方式iOS平台如何实现HTTP协议请求