不要使用SBJSON(json-framework)
来源:互联网 发布:支持承载网络否 编辑:程序博客网 时间:2024/05/01 21:44
不知道为什么,在iOS开发中,有很多人使用 SBJSON (又被称作json-framework)来做JSON解析库。我想这是因为SBJSON是最早在iOS上出现的JSON解析库。但是随着iOS开发的流行,越来越多优秀的JSON解析库也涌现出来, SBJSON和它们相比,性能上有很大的差距。
现在iOS行业内主要流行的JSON解析库有: NSJSONSerialization、 Apple JSON、 TouchJSON、 SBJSON、 YAJL、 JSONKit
行业内许多同行都对这些库进行过benchmark测试。我在网上搜到的测试文章包括:
- https://github.com/samsoffes/json-benchmarks
- http://blog.csdn.net/arthurchenjs/article/details/7009995
- http://blog.csdn.net/ccat/article/details/7207871
- http://omegadelta.net/2011/11/04/json-framework-now-sbjson-is-evil/
- http://stackoverflow.com/questions/2256625/comparison-of-json-parser-for-objective-c-json-framework-yajl-touchjson-etc
下图是我从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即可。附上一段使用示例:
#import "JSONKit.h"NSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"json"];NSData *content = [NSData dataWithContentsOfFile:path];NSDictionary *kitData = [content objectFromJSONData];NSString *kitString = [kitData JSONString];
- 不要使用SBJSON(json-framework)
- 不要使用SBJSON(json-framework)
- 不要使用SBJSON(json-framework)
- 不要使用SBJSON(json-framework)
- 不要使用SBJSON(json-framework)
- 不要使用SBJson(json-framework)
- 不要使用SBJSON(json-framework)
- 不要使用SBJSON(json-framework)
- 不要使用SBJSON(json-framework)
- 『IOS』不要使用SBJSON(json-framework)
- SBJson (aka json-framework)
- objective-c json处理 SBJson (Previously known as json-framework)
- iOS 使用SBJSON创建和解析JSON
- iOS 使用SBJSON创建和解析JSON
- 使用SBJson
- sbjson框架使用 jsonDemo1 json操作 请求,下载,转码
- IOS开发之——使用SBJson拼接Json字符串
- ios 中使用SBJson拼接和解析json
- 持续交付话题的一些讨论和心得
- Huge Pages
- 距离矢量路由算法
- jquery 学习笔记 ---选择器
- typedef 函数指针
- 不要使用SBJSON(json-framework)
- 网络IO模型
- 文法的类型
- JavaScript中的数组
- 一键完成数据网络备份与恢复
- 设计模式_迭代器模式(C++)
- 黑马程序员_正则表达式(正则匹配,替换,切割,获取,正则练习)
- 我的未来无限可能——CSDN高校巡讲之大连理工大学站讲座圆满结束
- 在iOS开发中使用FMDB