XML/JSON解析

JSON:

什么是JSON:

1,json是一种轻量级的数据格式,一般用于数据交互;

2,服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外)

JSON的格式很像OC中的字典和数组

{“name” : "jack", "age" : 10}

{"names" : ["jack","rose","jim"]}

标准JSON格式的注意点:key必须用双引号

JSON解析方案:

1,在IOS中,JSON的常见解析方式有4种

第三方框架: JSONKit、 SBJson、 TouchJSON (性能从左到右,越差);

苹果原生(自带):NSJSONSerialization (性能最好);

2,NSJSONSerialization的常见方法

JSON数据 -> OC对象

[NSJSONSerialization JSONObjectWithData:<#(NSData *)#> options:<#(NSJSONReadingOptions)#> error:<#(NSError *__autoreleasing *)#>];

OC对象 -> JSON数据

[NSJSONSerialization dataWithJSONObject:<#(id)#> options:<#(NSJSONWritingOptions)#> error:<#(NSError *__autoreleasing *)#>];

JSON解析例子:

-
(NSArray *)parseJSONData:(NSData *)data

{

//
解析数据

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];

NSArray *array = dict[@"videos"];

NSMutableArray *videos = [NSMutableArray
array];

for (NSDictionary *videoDict in array) {

HMVideo *video = [HMVideo videoWithDict:videoDict];

[videos addObject:video];

}

return videos;

}

一、XML介绍

全称是Extensible Markup Laugage ,译作“可扩展标记语言”;

跟JSON一样,也是常用的一种用于交互的数据格式;

<videos>

<video name = "abc" length = "20" />

<video name = "abcd" length = "30" />

<video name = "abcde" length = "40" />

</videos>

二、XML解析

1,DOM解析:一次性将整个XML文档加载进内存,比较适合解析小文件;(可以随机访问一个节点)

2,SAX解析:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件;(不可以随机访问一个节点)

IOS中的XML解析手段有很多:

1,苹果原生

NSXMLParser : SAX方式解析,使用简单

2,第三方框架

libxml2 :
纯C语言,默认包含在IOS SDK中,同时支持DOM和SAX方式解析

GDataXML : DOM方式解析,由Google开发,基于libxml2

3,XML解析方式建议:

小文件
:NSXMLParser、libxml2

大文件
:GDataXML

NSXMLParser:

使用步骤:

//传入XML数据,创建解析器;

NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];

//设置代理,监听解析过程;

parser.delegate = self;

//开始解析;

[parser parser];

NSXMLParser采取的是SAX方式解析,特点是事件驱动,下面情况都会通知代理;

1,当扫描到文档的开始与结束

2,当扫描到元素的开始与结束

GDataXML配置:

1,GDataXML基于libxml2库,得做以下配置;

导入libxml2库,如图:

2,设置libxml2的头文件搜索路径(为了能找到libxml2库得所有头文件)

在Head Search Path中加入 /usr/include/libxml2

3,设置链接参数(自动链接libxml2)

在Other Linker Flags中加入 -lxml2

注意:由于GDataXML是非ARC的,所以要配置编译参数;

GDataXML使用:

GDataXML中常用的类

GDataXMLDocument :
代表整个XML文档

GDataXMLElement :
代表文档中每个元素

使用attributeForName :
方法可以获得属性值

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-06 10:49:45

XML/JSON解析的相关文章

iOS XML/JSON解析

<a target=_blank href="http://download.csdn.net/detail/vaercly/7908319">点击打开下载链接iOS,XML/JSON解析</a> // FInterPreterVC.m // FInterpreter // // Created by lanouhn on 14-9-11. // Copyright (c) 2014年 [email protected] 陈聪雷. All rights rese

ios webservice编程:soap封装调用,返回xml,json解析

一.简介 webservice调用,包括soap请求与响应,返回(xml,json)解析. soap请求与响应:ios webservice+soap编程 xml,json解析:ios XML,JSON,数组解析并转换成NSMutableArray(List<class>) 二.项目 完整项目:点击下载 三.效果 soap请求与响应: xml,json解析:    

UI学习笔记---第十六天XML JSON解析

一.解析的基本概念 从事先规定好的格式中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据,数据方按照格式获取数据 常见解析方式XML解析JSON解析 二.XML:可扩展标记语言 XML数据格式的功能:数据交换 web服务  内容管理  用作配置文件 一对标签称为一个节点  节点可以包含节点   没有子节点叫叶子节点  只有一个根节点  节点可以相互嵌套 三.进行XML解析时使用到的SAX工具 SAX:Simple API for XML  基于事件驱动的解析方式,逐行解析数据.(

AFNetWorking 简单介(XML,JSON解析和判断网络状态

//AFNetWorking 当下最流行的数据请求方法 里面不仅包含数据请求还包含数据解析 //包含的数据请求就是对系统类NSURLConnection的封装 //数据解析(NSJSONSerialization.XMLParser) //AFNetworking 下至兼容ios6.0 以及block语法 arc //通过AFNetWorking请求json数据 并解析 //<1>创建http请求操作管理者对象 AFHTTPRequestOperationManager * manager =

XML JSON 解析类库

Jackson:processing JSON 1.Streaming API 2.Tree Model 3.Data Binding XML:processing XML 1.StAX API 2.JAXB 3.XML DOM

iOS中的数据解析(XML,JSON),SAX解析,DOM解析

第三方 SAT解析 #import "SAXTableViewController.h" #import "Student.h" @interface SAXTableViewController ()<NSXMLParserDelegate> @property (nonatomic, retain) NSMutableArray *dataSourse; // 存储学生对象 @property (nonatomic, retain) Student

iOS开发——网络Swift篇&amp;JSON与XML数据解析

JSON与XML数据解析 JSON数据解析(内置NSJSONSerialization与第三方JSONKit) 一,使用自带的NSJSONSerialization 苹果从IOS5.0后推出了SDK自带的JSON解决方案NSJSONSerialization,这是一个非常好用的JSON生成和解析工具,效率也比其他第三方开源项目高. NSJSONSerialization能将JSON转换成Foundation对象,也能将Foundation对象转换成JSON,但转换成JSON的对象必须具有如下属性

JSON解析和XML解析

一. XML:用到一个开源解析类,GDataXMLNode(将其加入项目中),添加libxml2.dylib框架 经常用到的方法: 1.- (id)initWithXMLString:(NSString *)str options:(unsigned int)mask error:(NSError *)error 2.- (id)initWithData:(NSData *)data options:(unsigned int)mask error:(NSError *)error 这两个方法可

iOS-数据持久化基础-JSON与XML数据解析

解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 一.XML数据结构 解析的基本概念 所谓“解析”:从事先规定好的格式串中提取数据 解析的前提:提前约定好格式.数据提供方按照格式提供数据.数据获取方按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 XML数据结构 XML解析SAX?方式解析从上往下,?一点?一点读取性能好苹果推荐使?用DO