0

NSXMLParser 和 JSON 解析器的优缺点是什么?

在什么场景下哪个好?

目前,我的应用程序使用 NSXMLParser。如果 JSON 解析器更高效,我打算移动它。

谢谢

4

1 回答 1

1

NSXMLParser是一个“事件驱动”解析器,它基本上通知委托人有关 XML 文档中某些元素的出现。

事件驱动的解析器本身并不创建 XML 文档的表示。元素的实际处理必须由某个委托来完成。正确使用事件驱动的解析器是复杂且容易出错的,并且需要经验如何处理这样的任务。嗯,你知道的。

NSJSONSerialization另一方面,我知道的所有其他第三方 JSON 解析器都从 JSON 输入创建一个基础对象(aNSArray或)。NSDictionary解析 JSON 文档并获取一个NSDictionary或一个NSArray对象只是一个语句的问题。少数还支持“事件驱动”模式。

XML 比 JSON 复杂得多。从本质上讲,JSON 解析器更简单,而且在解析文档时也几乎总是更高效。

尽管它很简单,但 JSON 几乎总是足以表达您的数据。

因此,当您可以用 JSON 表达数据时,无论如何,请使用 JSON。如果可能,请使用NSJSONSerialization.

其他第三方 JSON 解析器可能会提供额外的功能,例如事件驱动 API,一种处理数据块的改进方法,具有更复杂的选项来自定义某些边缘情况,例如处理 Unicode NULL 字符、Unicode 非字符、如何转换 JSON数字等,并且可能NSJSONSerialization.

今天,NSJSONSerialization它和 JSONKit 一样快。(对于某些输入,JSONKit 更快一些)。AFAIK,有两个第三方解析器几乎总是比任何输入都快NSJSONSerialization,尤其是在 arm 上,以及在转换数字时。您可以期望它们在 1 到 2 的范围内更快。但是考虑到解析 JSON 几乎从来都不是性能问题的罪魁祸首。

于 2013-09-04T16:09:11.630 回答