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文档的类型
最简单的声明
<?xml version="1.0" ?>
用encoding属性说明文档的字符编码
<?xml version="1.0" encoding="UTF-8" ?>
(2)元素(Element)
一个元素包括了开始标签和结束标签
拥有元素内容:<video>小黄人</video>
没有元素内容:<video></video>
没有元素内容的简写:<video/>
一个元素可以嵌套若干个子元素(不能出现交叉嵌套)
规范的XML文档最多只有1个根元素,其他元素都是根元素的子孙元素
(3)属性(Attribute)
一个元素可以拥有多个属性
<video name = "小黄人 第01部 length=30"/>注:video元素拥有name和length两个属性。属性值必须用双引号""或者 单引号'' 括住
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