JSON&XML总结

时间:2021-08-23 13:35:32

JSON&XML:

JSON-----

//英译 Serialization:序列化

perform:执行 segue:继续

IOS5后 NSJSONSerialization解析

解析JSON SBJSON JSONKit touchJson的第三方库

性能:NSJSONSerialization最好,JSONKit次之 SBJSON使用范围最广,API简单易用

关于JSON应用

发送GET/POST请求给服务器,获取数据DATA,用NSJSONSerialization解析DATA为JSON(数组/字典保存),写入本地plist文件,使用时解析plist文件为模型,从而使用模型的属性,

NSURLConnection sendAsyn:异步

//第三方框架SDWebImage 处理缓存

//XML解析- NSXMLParser这是解析器-----

英译://Parser:分析程序

-SAX(Simple API for XML)//Simple:简单的

-DOM(Document Object Model)//Document:文件

解析xml顺序(代理方法)

Connection异步获取data->实例化XML解析器(NSXMLParser)并添加data->设置代理->开始解析([parser parse])->实现六个代理方法

1: @"开始文档" 开始解析文档,初始化工作

- (void)parserDidStartDocument:(NSXMLParser *)parser

2: @"开始节点"  解析一个起始节点<name>(循环执行)//element:元素attributes:属性

- (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: @"节点完成"   解析末尾就节点</name>

- (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

//牛B闪闪Block-牛B闪闪Block-牛B闪闪Block------

//parser:解析 Completion:结束,完成

模型(封装方法)----

typedef void (^parserCompletionBlock)(NSArry *xmlList);

- (void)videoParserWithData:(NSData *)data Completion:(parserCompletionBlock)Completion;

{

parserCompletionBlock(数组);

}

需要将数据结果回传给控制器

控制器(调用方法)--

[对象 videoParserWithData:data Completion:^(NSArry *xmlList){

保存变量的数组=xmlList;

}];

//关于block:谁调用了