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

tom*_*ute 141 iphone json objective-c

据我所知,Objective-C,JSON Framework,YAJLTouch JSON有三个JSON解析器.然后,这三个将有自己的特点.

例如:
YAJL可以用作SAX样式解析器.
JSON Framework具有相对较长的历史并被广泛使用.
Touch JSON解析NSData而不是NSString.

另外,据我测试,性能比较的结果如下:
[fast] YAJL> JSON Framework> Touch JSON [slow].

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

joh*_*hne 59

如果您正在寻找速度,请查看JSONKit.它(通常)比已经提到的JSON库快得多,通常快一个数量级.而且由于它是"最近实例化的对象缓存",它(通常也会)使用更少的内存.

  • 我可以证实这一点:)在我的测试中,JSONKit几乎比YAJL快两倍,比JSON Framework快50%,但显然我用于测试的数据是JSONKit的最坏情况. (2认同)
  • 第二个.请记住在Release版本中设置NS_BLOCK_ASSERTIONS标志.它甚至进一步提高了速度. (2认同)
  • 截至目前,看起来JSONKit已被作者抛弃.最新版本的XCode存在一些问题,许多拉动请求需要修复它,而且没有一个被接受. (2认同)

bon*_*oJR 12

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

使用带有iOS 5.0.1的iPhone 4S进行了比较.


Rom*_*man 5

还有这个解析器:

我不记得我是如何偶然发现这个,但它看起来轻巧简单,所以我认为它符合我的需要.我将事件分叉,以便从NSData添加初始化.由于我需要解析小的回复,我不关心性能.知道它的表现会很有趣.