第十五讲:XML、JSON数据结构解析
本讲内容 一、解析的基本概念 二、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解析 将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协议请求 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |