JSON&XML总结
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:谁调用了