JSON 和 XML 解析

"JSON解析"JSON是一种轻量级的数据格式,服务器返回给客户端的数据一般都是JSON格式或者XML格式。文件下载除外。JSON格式很想OC中的饿字典和数组。注意:标准JSON格式的key必须是双引号""

JSON和OC对象之间的对应关系:{字典}、[数组]、"字符串"

10/10.1-> NSNumber

true/false-> NSNumber

null -> NSNull

JSON的解析方案:第三方框架和苹果原生。苹果原生的NSJSONSerialization是性能最好的。

1,JSON ——> OC:反序列化

在NSURLSession返回的响应的block块中,解析返回的data数据

[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];

2,OC ——> JSON:序列化

可以先判断当前对象能否转为JSON:+ (BOOL)isValidJSONObject:(id)obj;

NSData *data = [NSJSONSerialization dataWithJSONObject:dictM options:NSJSONWritingPrettyPrinted error:nil];

"XML解析":可扩展标记语言。XML文档的三部分,声明、元素、和属性。

XML解析工具:第三方框架和苹果原生。苹果原生:NSXMLParser,使用SAX方式解析,按顺序一个元素一个元素的往下解析,可用于解析大、小文件

注意点:1,注意不能交叉包含。2,空格也算内容。3,标准的XML只有一个根元素。

解析步骤:

使用NSXMLParser解析,和代理方法。

1,创建一个解析器。

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

2,设置代理。

parser.delegate =self;

3,开始解析。

[parser parse];

代理方法:

-(void)parserDidStartDocument:(nonnullNSXMLParser *)parser//开始解析XML文档的时候调用。

-(void)parser:(nonnullNSXMLParser *)parser didStartElement:(nonnullNSString *)elementName namespaceURI:(nullableNSString *)namespaceURI qualifiedName:(nullableNSString *)qName attributes:(nonnullNSDictionary *)attributeDict {//开始解析XML中某个元素的时候调用,

if([elementName isEqualToString:@"videos"]) {

return;

}

//字典转模型

XMGVideo *video = [XMGVideo objectWithKeyValues:attributeDict];

[self.videos addObject:video];

}

-(void)parser:(nonnullNSXMLParser *)parser didEndElement:(nonnullNSString *)elementName namespaceURI:(nullableNSString *)namespaceURI qualifiedName:(nullableNSString *)qName//当某个元素解析完成之后调用。

-(void)parserDidEndDocument:(nonnullNSXMLParser *)parser// XML文档解析结束之后调用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JSON JSON和XML都是需要解析的 JSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据...
    JonesCxy阅读 1,885评论 2 10
  • 效果图 一、本文章主要介绍 JSON XML两种数据解析方式 1.JSON 包括系统方法的JSON ,以及三方JS...
    有缘人2830阅读 939评论 0 3
  • 一 、 JSON解析(1.是什么 2.为什么 3.怎么用 4.优缺点) 1. JSON是什么 1)是一种轻量级的...
    fjytqiu阅读 603评论 0 1
  • 使用NSURLConnection来请求数据 JSON数据的请求 现在大多情况下都使用三方框架来完成的 l在iOS...
    iamgaoshuai阅读 600评论 0 1
  • JSON 和 XML 一、JSON 1.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互服务器返回...
    妳是我的天使阅读 370评论 0 3