XML/JSON解析
来源:互联网 发布:模拟退火算法 编辑:程序博客网 时间:2024/06/03 20:47
JSON:
什么是JSON:
1,json是一种轻量级的数据格式,一般用于数据交互;
2,服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外)
JSON的格式很像OC中的字典和数组
{“name” : "jack", "age" : 10}
{"names" : ["jack","rose","jim"]}
标准JSON格式的注意点:key必须用双引号
JSON解析方案:
1,在IOS中,JSON的常见解析方式有4种
第三方框架: JSONKit、 SBJson、 TouchJSON (性能从左到右,越差);
苹果原生(自带):NSJSONSerialization (性能最好);
2,NSJSONSerialization的常见方法
JSON数据 -> OC对象
[NSJSONSerialization JSONObjectWithData:<#(NSData *)#> options:<#(NSJSONReadingOptions)#> error:<#(NSError *__autoreleasing *)#>];
OC对象 -> JSON数据
[NSJSONSerialization dataWithJSONObject:<#(id)#> options:<#(NSJSONWritingOptions)#> error:<#(NSError *__autoreleasing *)#>];
JSON解析例子:
-(NSArray *)parseJSONData:(NSData *)data
{
//解析数据
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
NSArray *array = dict[@"videos"];
NSMutableArray *videos = [NSMutableArrayarray];
for (NSDictionary *videoDict in array) {
HMVideo *video = [HMVideo videoWithDict:videoDict];
[videos addObject:video];
}
return videos;
}
一、XML介绍: 全称是Extensible Markup Laugage ,译作“可扩展标记语言”;
跟JSON一样,也是常用的一种用于交互的数据格式;
<videos>
<video name = "abc" length = "20" />
<video name = "abcd" length = "30" />
<video name = "abcde" length = "40" />
</videos>
二、XML解析
1,DOM解析:一次性将整个XML文档加载进内存,比较适合解析小文件;(可以随机访问一个节点)
2,SAX解析:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件;(不可以随机访问一个节点)
IOS中的XML解析手段有很多:
1,苹果原生
NSXMLParser : SAX方式解析,使用简单
2,第三方框架
libxml2 :纯C语言,默认包含在IOS SDK中,同时支持DOM和SAX方式解析
GDataXML : DOM方式解析,由Google开发,基于libxml2
3,XML解析方式建议:
小文件:NSXMLParser、libxml2
大文件:GDataXML
NSXMLParser:
使用步骤:
//传入XML数据,创建解析器;
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
//设置代理,监听解析过程;
parser.delegate = self;
//开始解析;
[parser parser];
NSXMLParser采取的是SAX方式解析,特点是事件驱动,下面情况都会通知代理;
1,当扫描到文档的开始与结束
2,当扫描到元素的开始与结束
GDataXML配置:
1,GDataXML基于libxml2库,得做以下配置;
导入libxml2库,如图:
2,设置libxml2的头文件搜索路径(为了能找到libxml2库得所有头文件)
在Head Search Path中加入 /usr/include/libxml2
3,设置链接参数(自动链接libxml2)
在Other Linker Flags中加入 -lxml2
注意:由于GDataXML是非ARC的,所以要配置编译参数;
GDataXML使用:
GDataXML中常用的类
GDataXMLDocument :代表整个XML文档
GDataXMLElement :代表文档中每个元素
使用attributeForName :方法可以获得属性值
- JSON解析,XML解析
- JSON解析、XML解析
- XML解析 JSON解析
- XML解析、Json解析
- JSON解析/XML解析
- xml和json解析
- 解析(xml,json)
- xml,json解析
- json和xml解析
- XML,JSON解析
- ruby解析json、xml
- [ios]xml, json解析
- xml json 解析
- JSON VS XML 解析
- XML和JSON解析
- 解析(json、xml)
- XML.JSON数据结构解析
- IOS-XML&JSON解析
- 遗传算法理解(通俗易懂)
- 漫谈测试--测试职业发展--测试基于互联网的测试系列培训--正式开课
- [Unity基础]unity5中的动画系统(一)
- HDU 5317
- 马尔可夫链及吉布斯抽样 入门详解(Markov Chain Monte Carlo and Gibbs Sampling)
- XML/JSON解析
- Cross-site scripting(跨站脚本)学习笔记(一)
- 谈谈近期学习的感想 2015 7 28
- GK110强势到来!Tesla K20X/K20正式发布
- 如何在windows下安装cygwin
- Windchill学习之WTObject主内容打包下载
- ZOJ1002 Fire Net(二分图匹配)
- ASP.NET常见对象之Request与Response
- 五种不同的 URL 参数解析方法的性能比较