NSXMLParser& amp;的优缺点是什么? JSON解析器?
在哪种情况下哪一个好?
目前,我的应用使用NSXMLParser。如果效率更高,我打算移动JSON解析器。
由于
答案 0 :(得分:1)
NSXMLParser
是一个“事件驱动”解析器,它基本上通知代理XML文档中某些元素的出现。
事件驱动的解析器本身不会创建XML文档的表示形式。元素的实际处理必须由一些代表完成。正确使用事件驱动的解析器是复杂且容易出错的,并且需要经验如何处理这样的任务。嗯,你知道的。
另一方面, NSJSONSerialization
和我所知道的所有其他第三方JSON解析器,从JSON输入创建基础对象(NSArray
或NSDictionary
)。解析JSON文档并获取NSDictionary
或NSArray
对象是一个问题。少数人还支持“事件驱动”模式。
XML远比JSON复杂。本质上,JSON解析器更简单,并且在解析文档时几乎总是更有效。
尽管简单,但JSON几乎总是足以表达您的数据。
因此,当您以JSON表达数据时,无论如何都要使用JSON。如果可能,请使用NSJSONSerialization
。
其他第三方JSON解析器可能提供额外的功能,如事件驱动的API,处理数据块的改进方法,具有更复杂的选项来自定义某些边缘情况,如处理Unicode NULL字符,Unicode非字符,如何转换JSON数字等,可能可能比NSJSONSerialization
更快。
今天,NSJSONSerialization
和JSONKit一样快。 (对于某些输入,JSONKit更快一点)。 AFAIK,有两个第三方解析器,任何输入几乎总是比NSJSONSerialization
快,特别是在手臂上,以及转换数字。对于1到2范围内的因子,你可以期望它们更快。但是考虑解析JSON几乎不是性能问题的罪魁祸首。