JSON & XML——网络数据格式

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 提示
n JSON 的数据格式与 OC 中的快速包装方法非常类似
n JSON 的数据格式同样支持嵌套
解析服务器端返回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 元素
用于媒介播放的 video audio 元素等
追加了本地数据库等 Web 应用的功能
广义论及 HTML5 时,是包括 HTML CSS JavaScript 在内的一套技术组合
希望能够减少浏览器对于需要插件的丰富性网络应用服务

NSXMLParser SAX 方法解析
SAX Simple API for XML
只能读,不能修改 ,只能顺序访问,适合解析大型 XML 解析速度快
常应用于处理大量数据的 XML ,实现异构系统的数据访问,实现跨平台
从文档的开始通过每一节点移动,定位一个特定的节点
DOM Document 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:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值