iOS- 网络访问JSON数据类型与XML数据类型的实现思路及它们之间的区别
2015-07-25 13:46
585 查看
1.JSON (基本上移动开发的主要数据传输都是JSON)
1.1.JSON特点:
a.[] 表示数组
d. 读取数据时效率高
e.在做实现读取数据时,简单便捷
1.2.实现
要使用JSON,从网络上获取到数据之后使用:
可以将网络数据反序列化为字典或者数组,具体转换类型,看JSON最外面的一个括号
2.XML (主要用于上传一些文件,移动开发时用的不多)
2.1.JSON特点:
* XML
b. 解析步骤麻烦,效率低下
c. 直接看XML方便看出数据
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> 可以将所有的属性设置到一个节点中的属性节点中,如此只需要第二步即可。
相关文章推荐
- vsftpd安装与配置--研究tcp与防火墙
- HttpURLConnection 下载
- 使用TCP/IP的套接字(Socket)进行通信
- nyoj170 网络的可靠性(第三届河南省程序设计大赛)
- 没有任何关闭socket的日志,客户端和服务端进程都在, 网络连接完好, 为什么进行某操作后好好的tcp连接莫名其妙地断了呢?
- Apache 开启 Https
- 程序员笔试面试系列-网络与通信知识点
- Windows无法连接到选定网络,网络可能不在区域中。请刷新可用网络的列表,重新尝试
- TCP Segment Offload(TSO)的实现原理浅析
- TCP Segment Offload(TSO)的实现原理浅析
- Linux网络流量实时监控工具-ifstat
- Linux下的网络配置命令
- android 网络异步加载数据进度条
- nyoj-170-网络的可靠性(找度数1)
- 通过AFNetworking发送和获取网络资源
- 网络拍卖系统的设计
- 手动配置linux 网络时,修改默认网关,设置防火墙
- [AD]使用NetDiag工具测试工作站和服务器的网络连接和DNS解析
- [AD]使用DCDiag工具测试域控制器的网络连接和DNS解析
- iOS- 网络请求的两种常用方式GET & POST的区别