XML & JSON---iOS-Apple苹果官方文档翻译

XML与JSON:网络数据传输与存储的高效选择
本文深入探讨了XML与JSON作为网络数据传输与存储格式的特性与应用,比较了HTML与XML的基本概念,介绍了HTML5与XML的最新发展,并详细解释了JSON格式的特点、优势及在iOS开发中的应用。文章还提供了JSON数据解析的实践指导,包括使用NSJSONSerialization库的方法,以及如何利用第三方库SBJson、JSONKit、TouchJson进行高效解析。此外,文章讨论了JSON与XML之间的区别,强调了JSON在现代网络应用中的重要地位。

 

//转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3498496.html

本文对应pdf文档下载链接,猛戳-->:

04.XML & JSON.pdf
2.2 MB

XML & JSON ---iOS-Apple苹果



Fullscreen
  XML & JSON 
HTML & XML 
  HTML
-  用来描述网页的一种语言  -  HTML  指的是超文本 标记 语言  (Hyper Text Markup Language)
-  HTML  不是一种编程语言,而是一种标记语言 (markup language)  -  HTML  被设计用来显示数据
  HTML5
-  是下一代的  HTML
-  增加了用于绘画的  canvas  元素 -  用于媒介回放的  video    audio  元素等等
  XML
-  XML  是一种标记语言,很类似  HTML
-  XML  设计宗旨是传输和存储数据 ,而非显示数据

XML&JSON的设计宗旨是传输和存储数据,而非显示数据




XML & JSON  简介

 JSON

- 作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络 数据的通用格式 
- 基于JavaScript的一个子集 
- 易读性略差,编码手写难度大,数据量小 
- JSON格式取代了XML给网络传输带来了很大的便利,但是却没有 了XML的一目了然,尤其是JSON数据很长的时候,我们会陷入繁 琐复杂的数据节点查找中 
 XML 
- 可扩展标记语言 
- 用于标记电子文件使其具有结构性的标记语言,可以用来标记数 据、定义数据类型,是一种允许用户对自己的标记语言进行定义 的源语言 
- 易读性高,编码手写难度小,
数据量大


JSON 格式说明

  对象:  {}  括起来的内容 -  数据结构为 {key : value,key : value,...} 的键值对的结构  -  可以反序列化为 OC 中的 NSDictionary 
  数组:  [] 括起来的内容 -  数据结构为 ["java","javascript","vb",...]  -  可以反序列化为 OC 中的 NSArray 
Ø  序列化: 在传输之前,将对象转换成 有序 的字符串或者二进制数据流 
Ø  反序列化: 将接收到的字符串或者二进制数据流 转换成对象或者数组 , 以便程序访问 


解析服务器端返回的 JSON 数据

• 作为一种轻量级的数据交换格式,JSON正在逐步取代XML,成
为网络数据的通用格式
• iOS 5开始,使用NSJSONSerializationJSON解析
• 其他常见的三种JSON解析第三方库: -SBJson
- JSONKit
- TouchJson
• 从性能上来说,NSJSONSerialization最好,JSONKit次之, SBJson使用较为广泛,API简单易用


加载 JSON 演练 




SDWebImage-- 第三方框架    引入第

三方框架第一件事情,编译!
• 引入第三方框架的原则: - 是否广泛被使用- 能够看懂所有的源代码
• http://www.github.com
• 用第三方框架最大的好处:提高开发效率! • 大牛或者专业团队开发的SpriteKit
• Cocos2d-x 张晓龙 Cocos Builder
• ASI ARC时代,被称为HTTP访问终结者!2012.11 


• JSON是轻量级的数据交换格式,正逐步取代XML,成为通用网络数据 格式
• 使用类方法JSONObjectWithData:options:error:可以将接收到的JSON数 据反序列化NSArrayNSDictionary等对象
• 技巧:
1. 将加载内容反序列化为JSON后,可以先保存至plist文件,以便后续操作
2. 由于是网络应用,不要使用UIImage的同步加载方法设置ImageView的内 容,否则容易造成应用阻塞,影响用户体验
3. 加载网络图片使用的第三方框架SDWebImage,官网地址: https:// github.com/rs/SDWebImage


NSXMLParser 解析方法

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

NSXMLParser 解析过程 
  1.  创建 NSXMLParser 实例,并传入从服务器接收的 XML 数据 
  2.  定义解析器 代理 
  3.  解析器 解析 
  4.  通过解析代理方法完成 XML 数据的解析 

NSXMLParser 解析代理方法 
// 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:!

NSXMLParser 解析代理方法








©  chenyilong. Powered by  Postach.io

转载于:https://www.cnblogs.com/ChenYilong/p/3498496.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值