用于 Objective-C (JSON 框架、 YAJL、 TouchJSON 等)的 JSON 解析器的比较

据我所知,Objective-C、 JSON 框架YAJL触摸 JSON有三个 JSON 解析器。然后,这三个人就会有自己的特点。

例如:
YAJL 可以用作 SAX 样式的解析器。
JSON 框架有着相对较长的历史,并得到了广泛的应用。
Touch JSON 解析 NSData 而不是 NSString

此外,根据我的测试,性能比较的结果如下:
[快] YAJL > JSON Framework > Touch JSON[慢]。

如果您知道这些 JSON 解析器的优缺点,您能告诉我吗?
最后,如果您知道任何其他 JSON 解析器,请告诉我。

41021 次浏览

还有 这个解析器:

我不记得我是如何偶然发现这个的,但它看起来轻量级和简单,所以我认为它适合我的需要。为了从 NSData 添加初始化,我事件分叉了它。 由于我需要解析一些小的响应,所以我并不关心性能。尽管如此,了解它的表现还是很有意思的。

看看 这篇文章。 < 30个字符 >

如果你在寻找速度,看看 JSONKit。它(通常)比前面提到的 JSON 库快得多,通常数量级更快。而且由于它的“最近实例化的对象缓存”,它将(再次,通常)使用更少的内存。

为什么不看看 akosma 在解析器上的基准测试,他在其中比较了不同类型的解析器。如果缺少一个解析器,您也可以将其添加到测试中,因为他的代码是开源的。

IPhoneWebServicesClient

考虑到 我做的一个比较,最快的库是 JSONKit,其次是 NSJSONSerialization (现在的公共 API)和 NextiveJSON。SBJSON 和 TouchJSON 比前3个库稍慢一些。

这个比较是用 iPhone4S 和 iOS5.0.1做的。

如果您正在寻找从 NSObject 到 JSON 的序列化程序,反之亦然,那么您可能需要签出 JSONSerializer

我认为 JSONKit 比 YAJL 更快,YAJL 比 Touch JSON 更快,IOS5类 NSJSONSerialization 更快。NSJSONSerialization NSJSONSerialization 序列化不需要使用任何第三方 API。