第十五讲:XML、JSON数据结构解析


本讲内容


一、解析的基本概念

二、XML数据结构

三、JSON数据结构

四、XMLJSON两种数据结构的优缺点

五、进⾏行XML数据结构解析时使⽤用到的SAX⼯工具,DOM⼯工具

六、进⾏行JSON数据结构解析时使⽤用到的第三⽅方框架



一、解析的基本概念


解析的概念

所谓解析:从事先规定好的格式中提取数据解析的前提:提前约定好格式、数据提供⽅方按照格式提供数据、

数据获取⽅方则按照格式获取数据iOS开发常⻅见的解析:XML解析、JSON解析



二、XML数据结构


XML基本概念

XML:Extensible Markup language(可扩展标记语⾔言),主流数据格式之⼀一,可以⽤用来存储和传输数据。



XML数据格式的功能

数据交换
内容管理
⽤用作配置⽂文件


XML数据结构的语法

声明
节点使⽤用⼀一对标签表⽰示。起始和结束标签。
根节点是起始节点,只有⼀一个。节点可以嵌套。
节点可以有值。存储在⼀一对⼉儿标签中。


⽰示例


⽰示例


三、进⾏行XML解析时使⽤用到的SAX⼯工具


SAX解析

SAX:Simple API for XML。基于事件驱动的解析⽅方式,逐⾏行解析数据。(采⽤用协议回调机制)



NSXMLParser

NSXMLParseriOS⾃自带的XML解析类。采⽤用SAX⽅方式解析数据。

解析过程由NSXMLParserDelegate协议⽅方法回调

解析过程:开始标签->取值->结束标签->取值代码演⽰示



四、进⾏行XML解析时使⽤用到的DOM⼯工具


DOM解析
DOM:Document Object Model(⽂文档对象模型)。解析时需要

XML⽂文件整体读⼊入,并且将XML结构化成树状,使⽤用时再通过树状结构读取相关数据



GDataXMLNodeGDataXMLNodeGoogle提供的开源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)类目的作用



总结数据解析:从某种格式的数据中提取⾃自⼰己所需要的数据。

主流的数据交换格式有两种:XMLJSONXML解析分为两种:SAX解析和DOM解析XML解析⼯工具:NSXMLParserGDataXMLNodeTochXMLKissXML

JSON解析⼯工具:JSONKitNSJSONSerializationTouchJSONSBJSON等,其中NSJSONSerialization是系统提供的解析类,其解析效率是最⾼高的



课程预告

HTTP协议的概念HTTP协议的常⻅见请求⽅方式iOS平台如何实现HTTP协议请求 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值