gpt4 book ai didi

ios - NSXMLParser 与 JSON 解析器

转载 作者:行者123 更新时间:2023-11-29 03:39:45 25 4
gpt4 key购买 nike

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

哪一个适合哪种场景?

目前,我的应用程序使用 NSXMLParser。如果 JSON 解析器更高效,我计划迁移它。

谢谢

最佳答案

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

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

另一方面,

NSJSONSerialization 以及我所知道的所有其他第三方 JSON 解析器都会创建一个基础对象(NSArrayNSDictionary) >) 来自 JSON 输入。解析 JSON 文档并获取 NSDictionaryNSArray 对象只需一条语句。有一些还支持“事件驱动”模式。

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

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

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

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

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

关于ios - NSXMLParser 与 JSON 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18615713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com