1.JSON (基本上移动开发的主要数据传输都是JSON)       

1.1.JSON特点:                                   

a.[] 表示数组

b.{} 表示字典 - 对象模型建立关系

c.应用非常多,基本上移动开发的主要数据传输都是JSON

  d. 读取数据时效率高

  e.在做实现读取数据时,简单便捷

1.2.实现                                        

        

要使用JSON,从网络上获取到数据之后使用:

[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

  可以将网络数据反序列化为字典或者数组,具体转换类型,看JSON最外面的一个括号

2.XML (主要用于上传一些文件,移动开发时用的不多)     

2.1.JSON特点:                                 

*   XML

a. 大,解析费劲

  b. 解析步骤麻烦,效率低下

  c. 直接看XML方便看出数据

2.2.实现                                     

XML解析需要

// 1) 实例化解析器

NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];

// 2) 设置代理

parser.delegate = self;

// 3)开始解析

[parser parse];

// 4)调用代理方法

===================================================================

XML解析的六个代理方法

// 1. 开始解析文档,在这里做初始化工作

/**

1. 解析准备工作

- (void)parserDidStartDocument:(NSXMLParser *)parser

2.3.4 三个步骤会循环执行,一直到所有的节点解析完成

2.解析一个节点,即节点中的字典

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict

3.负责拼接字符串,查找节点内容,可能会多次

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

4. 节点完成,可以用KVC直接设置对象内容

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

5. 用于收尾工作

- (void)parserDidEndDocument:(NSXMLParser *)parser

6. 解析出错,需要把中间数据清除,以免造成不必要的错误

- (void)parser:(NSXMLParser *)parser parseErrorOccurred:(NSError *)parseError

7.当XML格式如下:

<book pages="12" index="1">

<item id="1558" title="仙逆" tag="玄幻" source="/upload/file/2013_07_4/2013718101155179.zip" author="耳根" updatetime="2013-6-21 11:06:17" summary="仙逆............." clicks="86945" words="" logo="/upload/pic/2013_06_5/20136211172503.png" jx="False" />

</book>

可以将所有的属性设置到一个节点中的属性节点中,如此只需要第二步即可。

                                                清澈Saup

iOS- 网络访问JSON数据类型与XML数据类型的实现思路及它们之间的区别的更多相关文章

  1. iOS网络访问之使用AFNetworking

    AFNetworking是IOS上常用的第三方网络访问库,我们可以在github上下载它,同时github上有它详细的使用说明,最新的AFNetworing2.0与1.0有很大的变化,这里仅对2.0常 ...

  2. QF——网络之JSON解析和XML解析

    JSON解析和XML解析: 用苹果原生的代理方式的网络请求后返回的都是二进制数据(NSData). 若是json,则通过NSJSONSerialization把NSData数据转换为JSON对象. N ...

  3. ios网络访问官方演示程序

    官方演示程序 AppDelegate 设置缓存 NSURLCache *URLCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * ...

  4. IOS 网络浅析-(五 xml解析)

    XML 可扩展标记语言 用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言 易读性高,编码手写难度小,数据量大 NSXMLPars ...

  5. iOS网络编程解析协议二:XML数据传输解析

    XML两种解析方式,一种是SAX,NSXMLParser是SAX方法解析,另一种是DOM(Document Object Model); 区别: SAX: 只能读,不能修改,只能顺序访问,适合解析大型 ...

  6. IOS网络访问详解

    第一.访问网络的方式 同步请求:数据的请求过程是由主线程发起的,网络加载需要一定的时间,因此会堵塞主线程 异步请求:数据的请求在多线程中完成 同步请求无法取消,异步请求的过程中可以取消,同步请求无法监 ...

  7. mssql sqlserver xml数据类型专题

    摘要: 下文将详细讲述sql server xml数据类型的相关知识,如下所示: 实验环境: sql server 2008 R2 xml数据类型简介: mssql sqlserver xml数据类型 ...

  8. iOS开发——网络篇——JSON和XML,NSJSONSerialization ,NSXMLParser(XML解析器),NSXMLParserDelegate,MJExtension (字典转模型),GDataXML(三方框架解析XML)

    一.JSON 1.JSON简介什么是JSONJSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典 ...

  9. iOS网络-02-数据解析(JSON与XML)

    数据交互格式 服务器返回给用户的数据,通常是以下两种方式: JSON XML JSON 一种轻量级的数据数据格式,体积比XML小,是服务器返回给移动端通常采用的格式 用使用JSON文件中的数据,需要对 ...

随机推荐

  1. HTML表格-table

    表格 表格由 <table> 标签来定义. 每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义). 字母 td 指表格数据 ...

  2. 安装cronsun管理定时脚本

    1. cronsun 是一个分布式任务系统,单个结点和 *nix 机器上的 crontab 近似.支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 crontab 一个不错的 ...

  3. BAPC 2014 Preliminary

    // 题目链接: https://nanti.jisuanke.com/t/282041 //动态规划,重复利用子问题的最优,来求解当前最优问题 #include <iostream> # ...

  4. java入门---基本数据类型之内置数据类型

        变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间.内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据.     因此,通过定义不同类型的变 ...

  5. 北京Uber优步司机奖励政策(12月18日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. day 6 老王开枪打人

    1.图示 2 程序 1)版本1:框架的搭建 def main(): '''用来控制这个程序的流程''' pass #1.创建alex对象 #2.创建1个枪对象 #3.创建1个弹夹对象 #4.创建子弹对 ...

  7. 封装Excls数据导出功能 返回一个下载链接地址

    /// <summary> /// 获取本地存储地址 /// </summary> /// <param name="dt"></para ...

  8. java对象创建过程简介

    这是看书的记录,字有点丑啊还是将就搬上来 -.-,等把后面看了完善图

  9. uvaoj 133 - The Dole Queue(逻辑,环形队列数数)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  10. Linux命令应用大词典-第2章 获取帮助

    2.1 help:查看内部Shell命令帮助信息 2.2 man:显示在线手册页 2.3 manpath:查看和设置man手册页的查询路径 2.4 info:阅读info格式的文件 2.5 pinfo ...