iOS之JSON,XML数据结构解析
来源:互联网 发布:拼团网源码 编辑:程序博客网 时间:2024/05/06 12:54
JSON解析步骤:
1.获取json文件路径
NSString*path = [[NSBundle mainBundle] pathForResource:@"Teacher"ofType:@"json"];2.读取文件中的data
NSData *data = [NSData dataWithContentsOfFile:path];3.把data转化为可变数组或者可变字典 是字典还是数组要看json最外层数据是什么.NSJSONSerialization是重点
NSError *error = nil;NSMutableArray*dataArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainerserror:&error];
使用JSONKit解析JSON
JSONKit是外部类目 需要导入
首先导入头文件 JSONKit中有objectFromJSONData方法 这个方法是里添加了各种类目 类目的作用是 一个UIData类型的对象 调用该方法后 会返回一个你里面是什么容器 返回就是什么容器的对象 调用之后返回的是一个数组类型的对象 而这个数组中存放的就是json文件中的内容
xml解析文件
SAX逐行解析数据 (采用协议回调机制)
解析过程由NSXMLParserDelegate协议⽅方法回调
解析过程:开始标签->取值->结束标签->取值
思考:1.从什么位置初始化装model得数组
2.从什么位置初始化model 从什么位置可以拿出数据
3.从什么位置给model赋值
4.从什么位置可以打印到数组
首先导入头文件 JSONKit中有objectFromJSONData方法 这个方法是里添加了各种类目 类目的作用是 一个UIData类型的对象 调用该方法后 会返回一个你里面是什么容器 返回就是什么容器的对象 调用之后返回的是一个数组类型的对象 而这个数组中存放的就是json文件中的内容
xml解析文件
SAX逐行解析数据 (采用协议回调机制)
解析过程由NSXMLParserDelegate协议⽅方法回调
解析过程:开始标签->取值->结束标签->取值
思考:1.从什么位置初始化装model得数组
2.从什么位置初始化model 从什么位置可以拿出数据
3.从什么位置给model赋值
4.从什么位置可以打印到数组
- (void)parserDidStartDocument:(NSXMLParser *)parser{ // 初始化数组 self.dataArray = [NSMutableArray array]; NSLog(@"已经开始分析文件");}- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{ // 初始化model if ([elementName isEqualToString:@"Student"]) { self.model = [[StudentModel alloc] init]; } NSLog(@"<%@>", elementName); // NSLog(@"开始遇到节点");}- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{ // 保存字符串 self.string = string; //NSLog(@"发现字符"); NSLog(@"%@", string);}- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{// 给model赋值 if ([elementName isEqualToString:@"name"]) { self.model.name = self.string; } else if ([elementName isEqualToString:@"gender"]) { self.model.gender = self.string; } else if ([elementName isEqualToString:@"age"]) { self.model.age = self.string; } else if ([elementName isEqualToString:@"motto"]) { self.model.motto = self.string; } else if ([elementName isEqual;ldghToString:@"Student"]) { // 节点名字等于Student的时候一个model就赋值完成了 可以装进数组中 [self.dataArray addObject:self.model]; [_model release]; } NSLog(@"遇到结束节点触发"); NSLog(@"</%@>", elementName);}- (void)parserDidEndDocument:(NSXMLParser *)parser{ NSLog(@"%@", self.dataArray); NSLog(@"已经结束分析文件");}现在一般多使用json解析.
0 0
- iOS之JSON,XML数据结构解析
- iOS编程------XML、JSON数据结构解析
- XML.JSON数据结构解析
- XML、JSON数据结构解析
- XML,JSON数据结构解析
- iOS之数据解析 (JSON 、XML)
- [ios]xml, json解析
- IOS-XML&JSON解析
- iOS XML/JSON解析
- IOS JSON/XML解析
- iOS--JSON,XML解析
- UIday1502:XML 、JSON 数据结构解析
- [TwistedFate]XML JSON数据结构解析
- UI XML,JSON 数据结构解析
- 23>IOS数据解析---------之JSON和XML解析
- ios开发系列之XML解析和JSON解析数据
- IOS网络篇15之网络数据结构JSON XML
- ios学习--XML&JSON解析
- 关于collect2: error: ld returned 1 exit status 问题的解决方法
- eclipse离线安装gradle、maven等插件
- Cortex-M3中断
- struts2--关于action的几种方法
- Map接口和HashMap练习
- iOS之JSON,XML数据结构解析
- 初识 Struts2 (HelloWorld)
- First Bad Version
- 京东笔试题---年终奖
- 做国际项目时候,处理翻译的国际化资源文件的java代码
- 使用UIImageView实现动画
- 2个小编程题(字节多少位为1,判断LSB or MSB)
- http 的get,put,post,delete
- 字符的三种写入 小程序