JSON & XML——网络数据格式

本文介绍了iOS开发中数据的序列化与反序列化方法,包括JSON格式的处理,并详细探讨了NSXMLParser用于XML文件的SAX解析方式及其过程。此外还提到了XMPP协议的应用场景以及JSON作为首选数据交换格式的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


反序列化

[NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];

序列化

[NSJSONSerialization dataWithJSONObject:arrayoptions:0 error:NULL];


connectionError
修改URL中的主机地址测试连接错误
定义NSURLRequest时,应该同时指定超时时长

修改后台数据库,增加中文姓名
注意在URL中如果包含中文字符或者特殊字符(例如:空格),需要使用百分号转义以确保URL的合法

使用指定编码对字符串进行百分号转义

stringByAddingPercentEscapesUsingEncoding

解码百分号转义的字符串

stringByAddingPercentEscapesUsingEncoding



NSXMLParserSAX方法解析
SAXSimple API for XML
只能读,不能修改,只能顺序访问,适合解析大型XML解析速度快
常应用于处理大量数据的XML,实现异构系统的数据访问,实现跨平台
从文档的开始通过每一节点移动,定位一个特定的节点
DOMDocument Object Model
不仅能读,还能修改,而且能够实现随机访问,缺点是解析速度慢,适合解析小型文档
一般应用与小型的配置XML,方便操作
为载入到内存的文档节点建立类型描述,呈现可横向移动、潜在巨大的树型结构
在内存中生成节点树操作代价昂贵

解析过程:
实例化NSXMLParser传入从服务器接收的XML数据
定义解析器代理
解析器解析
通过解析代理方法完成XML数据的解析

// 1. 开始解析XML文档

- (void)parserDidStartDocument:

// 2. 开始解析某个元素,会遍历整个XML,识别元素节点名称

- (void)parser:didStartElement:namespaceURI:qualifiedName:attributes:

// 3. 文本节点,得到文本节点里存储的信息数据,对于大数据可能会接收多次!为了节约内存开销

- (void)parser:foundCharacters:

// 4. 结束某个节点存储从parser:foundCharacters:方法中获取到的信息

- (void)parser:didEndElement:namespaceURI:qualifiedName:

注意:在解析过程中,234三个方法会不停的重复执行,直到遍历完成为止

// 5. 解析XML文档结束

- (void)parserDidEndDocument:

// 6. 解析出错

- (void)parser:parseErrorOccurred:


XMPP——即时通讯,KissXML

RSS目前还有少量的企业在使用
开源的WebServices,例如天气预报等
如果设计好XML的接口,XML的解析并不会太复杂
移动开发中绝大多数还是使用JSON
如果自己开发,或者公司后台接口,最好使用JSON








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值