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



NSXMLParser SAX 方法解析
SAX Simple API for XML
只能读,不能修改 ,只能顺序访问,适合解析大型 XML 解析速度快
常应用于处理大量数据的 XML ,实现异构系统的数据访问,实现跨平台
从文档的开始通过每一节点移动,定位一个特定的节点
DOM Document 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、付费专栏及课程。

余额充值