移动端常用的数据交互格式有xml和json两种方式
2016-01-07 23:08
405 查看
JSON
作为一种轻量级的数据交互格式,正在逐步取代xml ,成为数据的通用模式
基于javascript的一个子集 缺点 易读性略差,手动编写难度大,数据量小,JSON格式取代了XMl给网络传输带了很大的便利,但是却没有xml的一目了然
尤其是JSON数据很长的时候,我们会陷入繁琐的数据查找中
XMl可扩展语言
用于标记电子文件使其具有结构性的标记语言 可用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义源语言
易读性高,编写难度小数据量大
1.不要直接使用NSData的同步方法,否则无法设置request的超时时间
2.将加载内容反序列化为JSON之后,可以先保存至plist文件,以便后续操作
3.由于是网络应用,不要使用UIImage的同步加载方法设置ImageView的内容,否则容易造成应用阻塞,影响用户体验
NSXMLParser是SAX方法解析
sax只能读,不能修改,只能顺序访问,适合解析大型XML,解析速度快,使用于大数据的xml数据解析,实现异构系统的数据访问,实现跨平台
从文档的开始每一个节点移动到另一个节点结束
dom (document object Model)
不仅能读,还能修改,而且能够实现随机访问,缺点是访问速度慢,适合解析小型文档。为载入到内存的文档节点建立类型描叙
,可横向移动,巨大的树形结构,在内存中生成节点数代价昂贵
// 1. 开始解析XML文档
- (void)parserDidStartDocument:
// 2.
开始解析某个元素,会遍历整个XML,识别元素节点名称
- (void)parser:didStartElement:namespaceURI:qualifiedName:attributes:
// 3. 文本节点,得到文本节点里存储的信息数据,对于大数据可能会接收多次!为了节约内存开销
- (void)parser:foundCharacters:
// 4. 结束某个节点,存储从parser:foundCharacters:方法中获取到的信息
- (void)parser:didEndElement:namespaceURI:qualifiedName:
注意:在解析过程中,2、3、4三个方法会不停的重复执行,直到遍历完成为止
// 5.
解析XML文档结束
- (void)parserDidEndDocument:
// 6.
解析出错
- (void)parser:parseErrorOccurred:
// 测试加载本地PDF,需要指定MIMETYPE
……
[_webView
loadData:[NSData
dataWithContentsOfFile:dataPath]
MIMEType:@"application/pdf"
textEncodingName:@"UTF-8"
baseURL:nil];
// 测试加载本地文本文件,需要指定MIMETYPE
……
[_webView
loadData:[NSData
dataWithContentsOfFile:dataPath]
MIMEType:@"text/plain"
textEncodingName:@"UTF-8"
baseURL:nil];
// 测试加载本地HTML文件,需要指定MIMETYPE
……
NSURL *baseURL = [NSURL
fileURLWithPath:[[NSBundle
mainBundle]resourcePath]
isDirectory:YES];
[_webView
loadData:[NSData
dataWithContentsOfFile:dataPath]
MIMEType:@"text/html"
textEncodingName:@"UTF-8"
baseURL:baseURL];
说明:baseURL是基准URL,程序要用到其他资源的位置
// 获取当前页面的url
NSString *url = [_webView
stringByEvaluatingJavaScriptFromString:@"document.location.href"];
NSLog(@"url%@",url);
// 获取当前页面的标题
NSString*title = [_webView
stringByEvaluatingJavaScriptFromString:@"document.title"];
NSLog(@"title%@",title);
// 提交表单
[_webView
stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit();"];
•
•UIWebView是内置浏览器控件,能够加载html、pdf、txt等多种格式文件
•常用加载方法:
–loadRequest:
–loadHTMLString:baseURL:
–loadData:MIMEType:textEncodingName:baseURL:
•常用导航方法:
–goBack– 回退
–goForward– 前进
–reload - 重载
–stopLoading- 取消载入内容
•常用属性:
–scalespageToFit– 自动对页面进行缩放以适应屏幕
–dataDetectorTypes- 设定电话号码、网址、电子邮件和日期等文字变为链接文字
•浏览器通过MIME标志符可以知道使用哪种插件读取相关文件
•iOS可以直接调用js代码与页面通讯
作为一种轻量级的数据交互格式,正在逐步取代xml ,成为数据的通用模式
基于javascript的一个子集 缺点 易读性略差,手动编写难度大,数据量小,JSON格式取代了XMl给网络传输带了很大的便利,但是却没有xml的一目了然
尤其是JSON数据很长的时候,我们会陷入繁琐的数据查找中
XMl可扩展语言
用于标记电子文件使其具有结构性的标记语言 可用来标记数据,定义数据类型,是一种允许用户对自己的标记语言进行定义源语言
易读性高,编写难度小数据量大
1.不要直接使用NSData的同步方法,否则无法设置request的超时时间
2.将加载内容反序列化为JSON之后,可以先保存至plist文件,以便后续操作
3.由于是网络应用,不要使用UIImage的同步加载方法设置ImageView的内容,否则容易造成应用阻塞,影响用户体验
NSXMLParser是SAX方法解析
sax只能读,不能修改,只能顺序访问,适合解析大型XML,解析速度快,使用于大数据的xml数据解析,实现异构系统的数据访问,实现跨平台
从文档的开始每一个节点移动到另一个节点结束
dom (document object Model)
不仅能读,还能修改,而且能够实现随机访问,缺点是访问速度慢,适合解析小型文档。为载入到内存的文档节点建立类型描叙
,可横向移动,巨大的树形结构,在内存中生成节点数代价昂贵
// 1. 开始解析XML文档
- (void)parserDidStartDocument:
// 2.
开始解析某个元素,会遍历整个XML,识别元素节点名称
- (void)parser:didStartElement:namespaceURI:qualifiedName:attributes:
// 3. 文本节点,得到文本节点里存储的信息数据,对于大数据可能会接收多次!为了节约内存开销
- (void)parser:foundCharacters:
// 4. 结束某个节点,存储从parser:foundCharacters:方法中获取到的信息
- (void)parser:didEndElement:namespaceURI:qualifiedName:
注意:在解析过程中,2、3、4三个方法会不停的重复执行,直到遍历完成为止
// 5.
解析XML文档结束
- (void)parserDidEndDocument:
// 6.
解析出错
- (void)parser:parseErrorOccurred:
// 测试加载本地PDF,需要指定MIMETYPE
……
[_webView
loadData:[NSData
dataWithContentsOfFile:dataPath]
MIMEType:@"application/pdf"
textEncodingName:@"UTF-8"
baseURL:nil];
// 测试加载本地文本文件,需要指定MIMETYPE
……
[_webView
loadData:[NSData
dataWithContentsOfFile:dataPath]
MIMEType:@"text/plain"
textEncodingName:@"UTF-8"
baseURL:nil];
// 测试加载本地HTML文件,需要指定MIMETYPE
……
NSURL *baseURL = [NSURL
fileURLWithPath:[[NSBundle
mainBundle]resourcePath]
isDirectory:YES];
[_webView
loadData:[NSData
dataWithContentsOfFile:dataPath]
MIMEType:@"text/html"
textEncodingName:@"UTF-8"
baseURL:baseURL];
说明:baseURL是基准URL,程序要用到其他资源的位置
// 获取当前页面的url
NSString *url = [_webView
stringByEvaluatingJavaScriptFromString:@"document.location.href"];
NSLog(@"url%@",url);
// 获取当前页面的标题
NSString*title = [_webView
stringByEvaluatingJavaScriptFromString:@"document.title"];
NSLog(@"title%@",title);
// 提交表单
[_webView
stringByEvaluatingJavaScriptFromString:@"document.forms[0].submit();"];
•
•UIWebView是内置浏览器控件,能够加载html、pdf、txt等多种格式文件
•常用加载方法:
–loadRequest:
–loadHTMLString:baseURL:
–loadData:MIMEType:textEncodingName:baseURL:
•常用导航方法:
–goBack– 回退
–goForward– 前进
–reload - 重载
–stopLoading- 取消载入内容
•常用属性:
–scalespageToFit– 自动对页面进行缩放以适应屏幕
–dataDetectorTypes- 设定电话号码、网址、电子邮件和日期等文字变为链接文字
•浏览器通过MIME标志符可以知道使用哪种插件读取相关文件
•iOS可以直接调用js代码与页面通讯
相关文章推荐
- 安卓android.os.Looper.java分析
- Android Tools update proxy
- Android Studio——Message
- Android 键盘遮盖界面布局问题
- iOS开发~CocoaPods使用详细说明
- IOS 键盘弹出遮挡输入框使view上移
- Android Studio——private Handler mHandler = new Handler() {...}此处使用的什么语法,继承?重写?匿名类?
- AppBarLayout、ViewPager、Fragment实现页面左右滑动
- android基础回顾笔记1--四大组件
- category使用 objc_setAssociatedObject/objc_getAssociatedObject 实现添加属性
- iOS开发之小知识
- swift语言基础(二)流程控制
- android设置圆角矩形
- Android Support library
- Android通过AIDL与远程服务通信
- 微信红包-公众号-打击
- Android View(一)-View坐标以及方法说明
- Android数据存储---SharedPreferences详解及应用
- Android SQLite学习指南
- Swift - 函数 & 闭包的应用实例