一.解析的基本概念

从事先规定好的格式中提取数据

解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据

常见解析方式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解析的更多相关文章

  1. WP8.1学习系列(第二十四章)——Json解析

    .net已经集成了json解析,类名叫DataContractJsonSerializer DataContractJsonSerializer 类型公开以下成员. 构造函数     名称 说明 Da ...

  2. iOS学习笔记(九)——xml数据解析

    在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.Tiny ...

  3. iOS学习笔记(九)—— xml数据解析

    在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.Tiny ...

  4. 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 ...

  5. Java学习笔记(十)——xml

    [前面的话] 学习过程中还是效率不够高,老是容易注意力不集中,着急啊.不能在这样了,要好好学习,好好努力. 学习过程中的小知识点总结,基础知识,选择阅读. [xml定义] 定义:可扩展标记语言(英语: ...

  6. UI学习笔记---第十天UITableView表视图编辑

    UITableView表视图编辑 表视图编辑的使用场景 当我们需要手动添加或者删除某条数据到tableView中的时候,就可以使用tableView编辑.比如微信 扣扣中删除和某人的通话 当我们需要手 ...

  7. ui学习笔记---第十五天数据库

    数据库的使用 常见的数据库有MySQL       SQL Server       SQLite      Oralce等 在iOS开发中通常使用SQLite数据库,这是一个轻量级的数据库,可以在火 ...

  8. UI学习笔记---第十四天数据持久化

    一.沙盒机制 每个应用程序位于文件系统的严格限制部分 每个应用程序只能在为该程序创建的文件系统中读取文件 每个应用程序在iOS系统内斗放在了统一的文件夹目录下 沙盘路径的位置 1. 通过Finder查 ...

  9. Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)

    在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderSe ...

随机推荐

  1. S1:变量

    接触JS一段时间了,但总感觉不得要领,技术得不到提升,翻来覆去,决定对基础知识做一次系统的整理,要坚持每一天都有新的收获 ! 变量,即通过一个名字将一个值关联起来,以后通过变量就可以引用到该值,比如: ...

  2. 十大谷歌Google搜索技巧分享

    前言:多数人在使用Google搜索的过程是非常低效和无谓的,如果你只是输入几个关键词,然后按搜索按钮,你将是那些无法得到Google全部信息的用户,在这篇文章中,Google搜索专家迈克尔.米勒将向您 ...

  3. JSONObject与JSONArray的使用

    1.JAR包简介 要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: commons-lang.jar commons-beanutils.jar commons ...

  4. CoHTMLDocument

    http://blog.csdn.net/dlwxn/article/details/2860329 http://www.itnose.net/detail/120267.html 不知道是 线程内 ...

  5. C++-模板的声明和实现为何要放在头文件中

    源: http://blog.csdn.net/lqk1985/archive/2008/10/24/3136364.aspx 如何组织编写模板程序 发表日期: 1/21/2003 12:28:58 ...

  6. DotNetBar v12.1.0.0 Fully Cracked

    更新信息: http://www.devcomponents.com/customeronly/releasenotes.asp?p=dnbwf&v=12.1.0.0 如果遇到破解问题可以与我 ...

  7. JS随鼠标坐标移动,显示浮动层内容

    在表单等项目中往往会遇到类似于“备注”.“说明”等100个字内的内容需要显示. 这些内容如果全部呈现开,会影响布局和美观,确又没有必要设计一个层或是一个页面. 那么,我们可以把这些内容放到浮动层中,鼠 ...

  8. JS事件大全

    橙色表示“非常常用”  绿色表示“常用” onClick IE3|N2|O3 鼠标点击事件,多用在某个对象控制的范围内的鼠标点击 onDblClick IE4|N4|O 鼠标双击事件 onMouseD ...

  9. idea快捷键(转)

    Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/*...*/ )Ctrl+D 复制行Ctrl+X 删除行快速修复 alt+enter (modify/cast)代码提示 alt+/ctr ...

  10. goldengate 12c 针对oracle 12c配置的主要变化

    由于oracle 12c已经是多租户架构,在使用OGG同步的时候,需要考虑下面一些情况 一个 CDB包含多个PDB,源端部署的一个extract可访问所有pdb redo,理论上不需要每个pdb单独配 ...