iOS XML和JSON

JSON是一种轻量级的数据格式,一般用于数据交互。服务器返回给客户端的数据,一般都是JSON格式或者XML格式。

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

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

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

2.NSJSONSerialization的常见方法

(1)JSON数据 —>OC对象

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

(2)OC对象 —>JSON数据 

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

XML:全称是Extensible Markup Language,译作“可扩展标记语言”,跟JSON一样,也是常用的一种用于交互的数据格式,一般也叫XML文档(XML Document)。

一个常见的XML文档一般由以下部分组成

(1)文档声明

在XML文档的最前面,必须编写一个文档声明,用来声明XML文档的类型

最简单的声明

用encoding属性说明文档的字符编码

(2)元素(Element)

一个元素包括了开始标签和结束标签

拥有元素内容:

没有元素内容:

没有元素内容的简写:

一个元素可以嵌套若干个子元素(不能出现交叉嵌套)

规范的XML文档最多只有1个根元素,其他元素都是根元素的子孙元素

(3)属性(Attribute)

一个元素可以拥有多个属性

XML的解析方式有2种

(1)DOM:一次性将整个XML文档加载进内存,比较适合解析小文件

(3)SAX:从根元素开始,按顺序一个元素一个元素往下解析,比较适合解析大文件

在iOS中,解析XML的手段有很多:

(1)苹果原生   NSXMLParser:SAX方式解析,使用简单

(2)第三方框架

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

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

XML解析方式的选择建议:

大文件:NSXMLParser、libxml2

小文件:GDataXML

具体可参考以下链接:https://www.jianshu.com/p/a54d367adb2a

你可能感兴趣的:(iOS XML和JSON)