iOS- 网络访问JSON数据类型与XML数据类型的实现思路及它们之间的区别
来源:互联网 发布:淘宝售后退款时间 编辑:程序博客网 时间:2024/06/04 23:27
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> 可以将所有的属性设置到一个节点中的属性节点中,如此只需要第二步即可。
0 0
- iOS- 网络访问JSON数据类型与XML数据类型的实现思路及它们之间的区别
- python中的数据类型与json的数据类型之间的转化
- 不同数据类型与Json之间的转换
- 引用数据类型及与基本数据类型的区别
- iOS 数据类型之间的转换
- iOS 数据类型之间的转换
- javascript数据类型(以及它们的一些特性与判断)
- JavaScript的数据类型,运算符及数据类型之间的转化
- JAVA基本数据类型及之间的转换
- Java基本数据类型及之间的转换
- JAVA基本数据类型及之间的转换
- DSP 平台数据类型的宽度 及与windos的区别
- Date数据类型、基本数据类型与String类型之间的转换
- 参数估计、假设检验及它们之间的关系(相同点、联系与区别)
- int 与 Integer 数据类型之间的关系
- 基本数据类型与 String 之间的转换
- MYSQL 与 Oracle 之间的数据类型转换
- 包装类与数据类型之间的转换
- Problem M. Variable Shadowing -字符串暴力处理
- UESTC 250 windy数(数位DP)
- Epoll vs Poll vs Select
- http协议的一些基础介绍
- homebrew常用命令
- iOS- 网络访问JSON数据类型与XML数据类型的实现思路及它们之间的区别
- 欢迎使用CSDN-markdown编辑器
- leetcode - Search a 2D Matrix II
- vlc内部运行机制以及架构分
- Xcode 6下制作通用iOS Framework的脚本
- Android拍照、录像、录音代码范例
- Mysqli:事务回滚
- 求n的阶乘(for循环版)
- XTU 1235 CQRXLB 2015嘉杰信息杯 湘潭赛