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


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

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

    04.XML & JSON.pdf
    2.2 MB

    XML & JSON ---iOS-Apple苹果



     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解析方法

     NSXMLParserSAX方法解析
    - 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:!
    !
    注意:在解析过程中,234三个方法会不停的重复执行,直到遍历完成为止!
    !
    // 5.
     解析XML文档结束 - (void)parserDidEndDocument:!
    // 6. 解析出错 - (void)parser:parseErrorOccurred:!

    NSXMLParser解析代理方法








    © chenyilong. Powered by Postach.io


    作者:
    出处:http://www.cnblogs.com/ChenYilong/(点击RSS订阅)
    本文版权归作者和博客园共有,欢迎转载,
    但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    Ionic
    图片破碎 效果 修正
    去掉浏览器右侧动滚条宽度对页面的影响
    ng 依赖注入
    ng 通过factory方法来创建一个心跳服务
    ng 自定义服务
    ng $http 和远程服务器通信的一个服务。
    ng $interval(周期性定时器) $timeout(延迟定时器)
    ng $scope与$rootScope的关系
    函数重载
  • 原文地址:https://www.cnblogs.com/ChenYilong/p/3498496.html
Copyright © 2020-2023  润新知