ios之json,xml解析
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中有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解析.
ios之json,xml解析的更多相关文章
- iOS学习——JSON数据解析(十一)
在之前的<iOS学习——xml数据解析(九)>介绍了xml数据解析,这一篇简单介绍一下Json数据解析.JSON 即 JavaScript Object Natation,它是一种轻量级的 ...
- iOS学习—JSON数据解析
关于在iOS平台上进行JSON解析,已经有很多第三方的开源项目,比如TouchJson,JSONKit,SBJon等,自从iOS5.0以后,苹果SDK推出了自带的JSON解决方案NSJSONSer ...
- iOS 中的 xml 解析
在ios 中解析xml 的方法有很多种 1.苹果原生 NSXMLParser:SAX方式解析,使用简单 2.第三方框架 libxml2:纯c语言,默认包含在ios sdk中,同时支持DOM 和 SA ...
- iOS 中的XML解析代码(SAX)
1.XML解析(SAX) NSXMLParser SAX 大文件 1)打开文档 - (void)parserDidStartDocument:(NSXMLParser *)parser 2)开始查找起 ...
- iOS下json的解析 NSJSONSerialization
- (IBAction)JOSNButtonPressed:(id)sender { NSString *str=[@"http://douban.fm/j/mine/playlist? ...
- IOS中的XML解析之DOM和SAX
一.介绍 dom是w3c指定的一套规范标准,核心是按树形结构处理数据,dom解析器读入xml文件并在内存中建立一个结构一模一样的“树”,这树各节点和xml各标记对应,通过操纵此“树”来处理xml中的文 ...
- iOS开发笔记3:XML/JSON数据解析
这篇主要总结在iOS开发中XML/JSON数据解析过程用到的方法.XML数据解析主要使用SAX方式的NSXMLParser以及DOM方式的GDataXML,JSON数据解析主要使用NSJSONSeri ...
- iOS - - JSON 和 XML解析
JSON 和 XML 一.JSON 1.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) 2.JSON的格 ...
- IOS-网络(JSON解析数据与XML解析数据)
一.JSON解析数据 // // VideoModel.h // IOS_0130_网络视频 // // Created by ma c on 16/1/30. // Copyright © 2016 ...
随机推荐
- CF#335 Freelancer's Dreams
Freelancer's Dreams time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- C++可能出错的小细节
1. for(list<Geometry_line>::iterator it = G.begin(); it != G.end();) { if(IsLineCrossed(*it, l ...
- BZOJ3145 : [Feyat cup 1.5]Str
如果不存在模糊点,那么答案就是两个串的最长公共子串. 如果模糊点是某个串的开头或者结尾,那么可以暴力枚举另一个串中的某个前后缀更新答案. 否则,假设模糊点在第一个串里是$i$,在第二个串里是$j$,那 ...
- Python3 安装bulitwith 和urllib2包
# 背景 最近在看PACKT的Python Web Scraping, 书上用的是Python 2.X,但是自己电脑上却用的Python 3.4. 版本升级没什么好说的,只是很多的工具包并没有跟着升级 ...
- 《从陷阱中学习C/C++》读书笔记
1.运算符优先级很容易引起问题,如a = 4<<1+1,由于<<的优先级低于+,故其执行过程为 a = 4<<(1+1); 常见的运算符优先关系:(具体参照博客) ...
- NOIp 2012 #2 借教室 Label:区间修改线段树
题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...
- [WP8.1UI控件编程]Windows Phone XAML页面的编译
1.1.2 XAML页面的编译 Windows Phone的应用程序项目会通过Visual Studio完成XAML页面的编译,在程序运行时会通过直接链接操作加载和解析XAML,将XAML和过程式代码 ...
- iOS上让按钮文本左对齐问题
一,问题分析 1.在做历史记录视图的时候,由于让键盘退出后才能触发表格的 didselect 那个代理方法,也就是得点两下才触发,而表格中的按钮点一下就可以立即响应. 2.于是我就有了用按钮事件代替 ...
- ThinkPhp循环出数据库中的内容并输出到模板
<foreach name='user' item='v'> //循环出数据库中的内容 对应控制器->方法中的 $this->assign('user',M('user')- ...
- C语言中常量
C语言中常量 不具有数据类型的常量------宏常量 宏常量定义:用一个标识符号来表示的常量,又称为符号常量. 宏定义: #define 标识符 字符串 ----- ...