UI学习笔记---第十六天XML JSON解析
一.解析的基本概念
从事先规定好的格式中提取数据
解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据
常见解析方式XML解析JSON解析
二.XML:可扩展标记语言
XML数据格式的功能:数据交换 web服务 内容管理 用作配置文件
一对标签称为一个节点 节点可以包含节点 没有子节点叫叶子节点 只有一个根节点 节点可以相互嵌套
三.进行XML解析时使用到的SAX工具
SAX:Simple API for XML 基于事件驱动的解析方式,逐行解析数据.(采用协议回调机制)
NSXMLParser类
NSXMLParser是iOS自带的XML解析类,采用SAX方式解析数据
解析过程由NSXMLParserDelegate协议方法回调
解析过程:开始标签->取值->结束标签->开始标签->取值->结束标签...
四.进行XML解析时使用到得DOM工具
DOM解析:Document Object Model (文档对象模型)解析时需要将XML文件整体读入,并将XML结构化成树状使用时再通过树状结构读取相关数据
以栈的方式解析数据
GDataXMLNode是Google提供的开源XML解析类,对libxml2.dylib进行了Objective-C的封装
采用DOM方式解析数据
iOS中包含一个C语言的动态链接库 libxml2.dylib,解析速度比NSXMLParser快


_dict = [[NSMutableDictionary alloc] initWithCapacity:];
//获取包路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Citys" ofType:@"xml"];
//转化为二进制流
NSData *data = [NSData dataWithContentsOfFile:filePath];
//解析
GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data options: error:nil];
//根节点
GDataXMLElement *root = document.rootElement;
NSMutableArray *arr1 = [[NSMutableArray alloc] initWithArray:[root nodesForXPath:@"province1/city" error:nil]];
NSMutableArray *arr2 = [[NSMutableArray alloc] initWithArray:[root nodesForXPath:@"province2/city" error:nil]]; [_dict setObject:arr1 forKey:@"河南"];
[_dict setObject:arr2 forKey:@"河北"];
五.JSON数据结构
Javascript Object Notation 轻量级的数据交换格式.采用完全独立于语言的文本格式,被称为理想的数据交换语言
数据类型:字符串. 数字 BOOL 字典 数组
字典:以"{"开始以"}"结束,中间是字典的键值对,键和值中间用":"隔开,多个键值对之间用","隔开
数组:以"["开始,以"]"结束,中间是数据.数据以","分隔
[{"name":"李四","sex":"男","age":"20"},{"name":"张三","sex":"女","age":"23"}]
JSON数据结构的功能;数据交换 内容管理 配置文件
六使用JSONKit进行JSON解析
JSONDecoder对象的作用
NSString(JSONKitDeserializing)类目的作用
NSData(JSONKitDeserializing)类⺫的作⽤
NSString(JSONKitSerializing)类目的作用
NSArray(JSONKitSerializing)类⺫的作⽤
NSDictionary(JSONKitSerializing)类⺫的作用
七.使用Foundation进行JSON解析
NSJSONSerialization
//JSON文件路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Students" ofType:@"json"];
//转换二进制流
NSData *data = [NSData dataWithContentsOfFile:filePath];
//解析
NSMutableArray *arr = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",arr);
UI学习笔记---第十六天XML JSON解析的更多相关文章
- WP8.1学习系列(第二十四章)——Json解析
.net已经集成了json解析,类名叫DataContractJsonSerializer DataContractJsonSerializer 类型公开以下成员. 构造函数 名称 说明 Da ...
- iOS学习笔记(九)——xml数据解析
在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.Tiny ...
- iOS学习笔记(九)—— xml数据解析
在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.Tiny ...
- java学习笔记(12) —— Struts2 通过 xml /json 实现简单的业务处理
XML 1.引入dom4j-2.0.0.jar 2.引入jquery-1.8.2.js 3.新建common.js getInfo = function(){ $.post("getXmlA ...
- Java学习笔记(十)——xml
[前面的话] 学习过程中还是效率不够高,老是容易注意力不集中,着急啊.不能在这样了,要好好学习,好好努力. 学习过程中的小知识点总结,基础知识,选择阅读. [xml定义] 定义:可扩展标记语言(英语: ...
- UI学习笔记---第十天UITableView表视图编辑
UITableView表视图编辑 表视图编辑的使用场景 当我们需要手动添加或者删除某条数据到tableView中的时候,就可以使用tableView编辑.比如微信 扣扣中删除和某人的通话 当我们需要手 ...
- ui学习笔记---第十五天数据库
数据库的使用 常见的数据库有MySQL SQL Server SQLite Oralce等 在iOS开发中通常使用SQLite数据库,这是一个轻量级的数据库,可以在火 ...
- UI学习笔记---第十四天数据持久化
一.沙盒机制 每个应用程序位于文件系统的严格限制部分 每个应用程序只能在为该程序创建的文件系统中读取文件 每个应用程序在iOS系统内斗放在了统一的文件夹目录下 沙盘路径的位置 1. 通过Finder查 ...
- Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)
在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...
随机推荐
- HTML元素,属性,基础标签
元素,属性 元素 html有父元素和子元素,被包含的叫子元素,如html是head的父元素,他们是父子关系,head和body是兄弟关系 <html> <head></h ...
- 搞懂offsetY、offsetTop、scrollTop、offsetHeight、scrollHeight
先搞offsetTop,最难懂的就是它了 官方解释:返回当前元素的上边界到它的包含元素的上边界的偏移量,以像素为单位.这真TM坑爹啊!有木有!经过仔细研究查找得出结论:offsetTop是相对于离它最 ...
- 浅谈C++源码的过国内杀软的免杀
以下只是简单的思路和定位.也许有人秒过,但是不要笑话我写的笨方法.定位永远是过期不了的. 其实这里废话一下 , 本人并不是大牛 ,今天跟大家分享下 .所以写出这篇文章.(大牛飘过) 只是个人实战的经验 ...
- POJ 1062 昂贵的聘礼 最短路 难度:0
http://poj.org/problem?id=1062 #include <iostream> #include <cstring> #include <queue ...
- SG函数 模板
int get_SG(int x) { ) return SG[x]; ]={}; ;i<=n;i++) ) v[get_SG(x-s[i])]=; int i; ;v[i];i++); SG[ ...
- 神奇的Noip模拟试题 T3 科技节 位运算
3 科技节 (scifest.pas/.c/.cpp) [问题描述] 一年一度的科技节即将到来.同学们报名各项活动的名单交到了方克顺校长那,结果校长一看皱了眉头:这帮学生热情竟然如此高涨,每个人都报那 ...
- 数据结构-List
Lis的实现: /////////////////////////////////////////////////////////////////////////////// // // FileNa ...
- redis学习(一)
一.redis简介 Redis是基于内存.可持久化的日志型.key-value高性能存储系统.关键字(Keys)是用来标识数据块.值(Values)是关联于关键字的实际值,可以是任何东西.有时候你会存 ...
- 基于K2 BPM平台,中原地产实现了从2个人到5万多人的跨越
演讲人:吴付文 中原地产CIO 点击这里查看中原地产怎么使用BPM实现业绩的飞跃式发展.
- 微软.NET Framework 4.5.2 RTM正式版
今天,微软.NET开发团队发布.NET Framework 4.5.2 RTM正式版.新版框架继续高度兼容现有的.NET Framework 4.4.5.4.5.1等版本,该版本框架与旧版的.NET ...