zoukankan      html  css  js  c++  java
  • 数据解析

    1、相关定义:
    JSON

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

    基于JavaScript的一个子集

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

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

    XML

    可扩展标记语言

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

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

    2、JSON格式说明:

    对象

    {}

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

    可以反序列化为OC中的NSDictionary

    数组

    []

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

    可以反序列化为OC中的NSArray

    提示

    JSON的数据格式与OC中的快速包装方法非常类似

    JSON的数据格式同样支持嵌套

    3、解析服务器端返回JSON数据:

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

    其他常见的三种JSON解析第三方库:

    SBJson 因为API简单易用,可能还会有一些应用中留存

    JSONKit JSONKit的开发者称:JSONKit的性能优于苹果

    TouchJson

    4、JSON的序列化和反序列化:

    反序列化

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

    序列化

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

    NSJSONReadingOptions:

    NSJSONReadingMutableContainers = 1,    根节点可变

    NSJSONReadingMutableLeaves = 2,          节点可变

    NSJSONReadingAllowFragments = 4,         根节点可以不是NSDictionary或者NSArray

    提示:

    如果枚举类型的起始数值是1,通常0就表示什么选项也不支持,是效率最高的选项

    5、HTML & XML:

    HTML 

    是用来描述网页的一种语言

    HTML 指的是超文本标记语言 (Hyper Text Markup Language)

    HTML 不是一种编程语言,而是一种标记语言 (markup language)

    HTML 被设计用来显示数据

    XML 

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

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

    HTML5

    强化了 Web 网页的表现性能

    增加了用于绘画的 canvas 元素

    用于媒介播放的 video 和 audio 元素等

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

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

    希望能够减少浏览器对于需要插件的丰富性网络应用服务

    6、NSXMLParser解析方法:

    NSXMLParser是SAX方法解析

    SAXSimple API for XML

    只能读,不能修改,只能顺序访问,适合解析大型XML,解析速度快

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

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

    DOMDocument Object Model

    不仅能读,还能修改,而且能够实现随机访问,缺点是解析速度慢,适合解析小型文档

    一般应用与小型的配置XML,方便操作

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

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

     

    7、解析XML:
    7.1->解析过程:
    实例化NSXMLParser,传入从服务器接收的XML数据

    定义解析器代理

    解析器解析

    通过解析代理方法完成XML数据的解析

    7.2->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:

    7.3->XML的应用场景:

    XMPP——即时通讯,KissXML

    RSS目前还有少量的企业在使用

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

    如果设计好XML的接口,XML的解析并不会太复杂

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

    如果自己开发,或者公司后台接口,最好使用JSON

  • 相关阅读:
    PHP安全编程:更优的会话数据安全 更好地防范session暴露(转)
    PHP安全编程:会话数据注入 比会话劫持更强大的攻击(转)
    小菜学习设计模式(四)—原型(Prototype)模式
    小菜学习设计模式(三)—工厂方法(Factory Method)模式
    从头学习设计模式(一)——单例模式
    javascript Date format(js日期格式化)
    您尝试打开的文件的格式与文件扩展名指定的格式不一致
    C# foreach 中获取索引index的方法
    C# DateTime日期格式化
    oracle的常用函数 instr() 和substr()函数
  • 原文地址:https://www.cnblogs.com/bluceZ/p/4629496.html
Copyright © 2011-2022 走看看