JSON和XML

什么是JSON

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

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

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

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

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

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

- 要想从JSON中挖掘出具体数据,得对JSON进行解析

- JSON 转换为 OC数据类型

JSON – OC 转换对照表


JSON – OC 转换练习


JSON解析方案

- 在iOS中,JSON的常见解析方案有4种

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

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

NSJSONSerialization的常见方法

JSON数据 -> OC对象

+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;

OC对象 -> JSON数据

+ (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;

解析来自服务器的JSON


XML

 什么是XML

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

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

 一般也叫XML文档(XML Document)


NSXMLParser

使用步骤

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

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

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

parser.delegate=self;

// 开始解析[parser parse];

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

- 当扫描到文档(Document)的开始与结束

- 当扫描到元素(Element)的开始与结束

NSXMLParserDelegate

当扫描到文档的开始时调用(开始解析)

- (void)parserDidStartDocument:(NSXMLParser *)parser

当扫描到文档的结束时调用(解析完毕)

- (void)parserDidEndDocument:(NSXMLParser *)parser

当扫描到元素的开始时调用(attributeDict存放着元素的属性)

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict

当扫描到元素的结束时调用

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

GDataXML配


GDataXML使用

- GDataXML中常用的类

     - GDataXMLDocument:代表整个XML文档

     - GDataXMLElement

            - 代表文档中的每个元素

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

JSON和XML比较


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

推荐阅读更多精彩内容

  • JSON JSON和XML都是需要解析的 JSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据...
    JonesCxy阅读 1,876评论 2 10
  • JSON 和 XML 一、JSON 1.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互服务器返回...
    妳是我的天使阅读 370评论 0 3
  • 使用NSURLConnection来请求数据 JSON数据的请求 现在大多情况下都使用三方框架来完成的 l在iOS...
    iamgaoshuai阅读 588评论 0 1
  • JSON 1.JSON是一种轻量级的数据格式,一般都是用于数据交互2.服务器返回给客户端的数据,一般都是JSON格...
    Little_Dragon阅读 1,476评论 0 5
  • 1. JSON 什么是JSONJSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据,一般都是J...
    WenJim阅读 815评论 0 2