第十五讲: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协议请求

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念