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文档的类型

最简单的声明

<?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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容