zoukankan      html  css  js  c++  java
  • JSON & XML 简析

    JSON & XML

    JSON:

        JSON是基于JavaScript的一个子集;

        作为一种轻量级的数据交换格式,正在逐步取代XML成为网络数据的通用格式。

    缺点:

        易读性略差,编码手写难度大,数据量小;

        JSON格式取代了XML,给网络传输带来了很大的便利,但是却没有了XML的一目了然,尤其是JSON数据很长的时候,我们会陷入繁琐复杂的数据节点查找中。

    XML:

        可扩展标记语言;

        用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

        易读性高,编码手写难度小,数据量大。

        在客户端与服务器数据传输过程中,JSON 和 XML都是字符串格式。    

    JSON格式说明:

        对象 

        {}  格式  {key : value, key : value,...} 的键值对的结构 ;

        可以反序列化为OC中的NSDictionary ;

        数组 

        []  格式  ["java","javascript","vb",...]  

        可以反序列化为OC中的NSArray ;

        JSON的数据格式与OC中的快速包装方法非常类似,JSON的数据格式同样支持嵌套。    

    JSON的序列化与反序列化;

        从 iOS 5 开始,使用NSJSONSerialization对JSON解析。

    序列化

    1
    [NSJSONSerialization dataWithJSONObject:array options:0 error:NULL];

    反序列化

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

    HTML & XML 的对比

    HTML:

        HTML指的是超文本标记语言[Hyper Text Markup Languaga],是用来描述网页的一种标记语言而不是编程语言;

        HTML被设计用来显示数据。

    XML:

        XML也是一种标记语言,很类似HTML;

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

    HTML5新特性:

        1> 强化了Web网页的表现性能: 增加了用于绘画的canvas元素,用于媒介播放的video和audio元素等;

        2> 追加了本地数据库等Web应用的功能;

        3> 广义论及HTML5时,是包括HTML、CSS和JavaScript在内的一套技术组合;

    NSXMLParser解析方法:

    SAX(Simple API for XML)特点:

        1、只能读,不能修改,只能顺序访问,解析速度快;

        2、常用于处理大量数据的XML,实现异构系统的数据访问,实现跨平台;

        3、从文档的开始通过每一节点移动,定位一个特定的节点。

    DOM(Document Object Model)特点:

        1、不仅能读,还能修改,而且能够实现随机访问;

        2、解析速度慢,适合解析小型文档,一般应用于小型的配置XML,方便操作;

        3、为载入到内存的文档节点建立类型描述,呈现可以横向移动,潜在巨大的树型结构;

        4、在内存中生成节点树操作代价昂贵。

    NSXMLParser解析过程:

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

    NSXMLParser解析代理方法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // 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:

    XML目前应用场景:

        XMPP ——即时通讯,KissXML;

        RSS (将网站摘要用xml语言描述)目前还有少量的企业在使用;

        开源的WebServices,例如天气预报等。

        目前移动开发中绝大多数还是使用JSON。

  • 相关阅读:
    Jquery之高亮显示
    JS之旋转轮播图
    JS之手风琴效果
    JS之评价页面点亮星星进行评价
    JS之京东淘宝图片放大镜效果
    JS之表单验证
    JS之拖拽案例
    禁止文本选中
    大数据告诉你:学历真的能改变命运
    hadoop的自定义分组实现 (Partition机制)
  • 原文地址:https://www.cnblogs.com/Jenaral/p/5281504.html
Copyright © 2011-2022 走看看