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开始,使用NSJSONSerialization对JSON解析
其他常见的三种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:
注意:在解析过程中,2、3、4三个方法会不停的重复执行,直到遍历完成为止
// 5. 解析XML文档结束
- (void)parserDidEndDocument:
// 6. 解析出错
- (void)parser:parseErrorOccurred: