下图是我从ArthurChenJS的博客文章中截取的一张benchmark测试结果图(横条越短,解析速度越快):
从这些文章中可以看到,SBJSON在多数测试中都处于倒数的第一或倒数第二的位置。所以说,SBJSON实际上在性能这一点上讲,确实是非常“SB”的,实在不值得大家留念。赶快把你的JSON解析库换成其它的吧!
那么应该换成哪个呢? 如果你的app只支持iOS 5.0以上系统,那么直接用苹果官方提供的JSON库:NSJSONSerialization 库即可。 如果你的app要支持iOS 5.0以下的系统,那么我个人推荐JSONKit,不过JSONKit本身做了很多内存上的优化,所以不支持ARC,你在使用时可以对其加上 -fno-objc-arc 的编译标志即可,设置这个编译标志的详细步骤可以见这篇文章。
JSONKit的使用也非常方便,在使用上只需要把SBJSON的JSONValue方法换成objectFromJSONData,JSONRepresentation方法换成JSONString即可。附上一段使用示例:
123456#import "JSONKit.h"NSString*path=[[NSBundlemainBundle]pathForResource:@"data"ofType:@"json"];NSData*content=[NSDatadataWithContentsOfFile:path];NSDictionary*kitData=[contentobjectFromJSONData];NSString*kitString=[kitDataJSONString];