JSON & XML——网络数据格式

来源:互联网 发布:软件项目质量保证措施 编辑:程序博客网 时间:2024/06/06 20:11
JSON
(1)作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式
(2)基于JavaScript的一个子集
(3)易读性略差,编码手写难度大,数据量小
(4)JSON格式取代了XML给网络传输带来了很大的便利,但是却没有了XML的一目了然,尤其是JSON数据很长的时候,我们会陷入繁琐复杂的数据节点查找中
XML
n可扩展标记语言
n用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言
n易读性高,编码手写难度小,数据量大


JSON格式说明

n对象
n{}
n格式 {key : value, key : value,...} 的键值对的结构
n可以反序列化OC中的NSDictionary
n数组
n[]
n格式 ["java","javascript","vb",...]
n可以反序列化OC中的NSArray
n
n提示
nJSON的数据格式与OC中的快速包装方法非常类似
nJSON的数据格式同样支持嵌套
解析服务器端返回JSON数据
iOS 5开始,使用NSJSONSerializationJSON解析

其他常见的三种JSON解析第三方库:
SBJson 因为API简单易用,可能还会有一些应用中留存
JSONKit JSONKit的开发者称:JSONKit的性能优于苹果
TouchJson

反序列化

[NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];


序列化

[NSJSONSerialization dataWithJSONObject:arrayoptions:0 error:NULL];





HTML
是用来描述网页的一种语言
HTML 指的是超文本标记语言(Hyper TextMarkup Language)
HTML 不是一种编程语言,而是一种标记语言(markuplanguage)
HTML 被设计用来显示数据
XML
XML 是一种标记语言,很类似HTML
XML 的设计宗旨是传输和存储数据,而非显示数据
HTML5
强化了 Web 网页的表现性能
增加了用于绘画的 canvas元素
用于媒介播放的 videoaudio 元素等
追加了本地数据库等 Web应用的功能
广义论及HTML5时,是包括HTMLCSSJavaScript在内的一套技术组合
希望能够减少浏览器对于需要插件的丰富性网络应用服务

NSXMLParserSAX方法解析
SAXSimple API for XML
只能读,不能修改,只能顺序访问,适合解析大型XML解析速度快
常应用于处理大量数据的XML,实现异构系统的数据访问,实现跨平台
从文档的开始通过每一节点移动,定位一个特定的节点
DOMDocument Object Model
不仅能读,还能修改,而且能够实现随机访问,缺点是解析速度慢,适合解析小型文档
一般应用与小型的配置XML,方便操作
为载入到内存的文档节点建立类型描述,呈现可横向移动、潜在巨大的树型结构
在内存中生成节点树操作代价昂贵

实例化NSXMLParser传入从服务器接收的XML数据
定义解析器代理
解析器解析
通过解析代理方法完成XML数据的解析

// 1. 开始解析XML文档

- (void)parserDidStartDocument:

// 2. 开始解析某个元素,会遍历整个XML,识别元素节点名称

- (void)parser:didStartElement:namespaceURI:qualifiedName:attributes:

// 3. 文本节点,得到文本节点里存储的信息数据,对于大数据可能会接收多次!为了节约内存开销

- (void)parser:foundCharacters:

// 4. 结束某个节点存储从parser:foundCharacters:方法中获取到的信息

- (void)parser:didEndElement:namespaceURI:qualifiedName:

注意:在解析过程中,234三个方法会不停的重复执行,直到遍历完成为止

// 5.解析XML文档结束

- (void)parserDidEndDocument:

// 6.解析出错

- (void)parser:parseErrorOccurred:





0 0
原创粉丝点击