iOS中JSON解析三方库的比较

网络数据解析框架  

1.  JsonModel   

一个 JSON 模型转换库,有着比较简洁的接口。Model 需要继承自 JSONModel。

2.  yyModel     

yyModel比较轻量(算上.h 只有 5 个文件),支持自动的 JSON/Model 转换,支持定义映射过程。API 简洁,功能也比较简单。据说作者是用两个周末写出来的,需要谨慎使用。

3.  MJExtension 

国内开发者"小码哥"开发的JSON 模型库,号称性能超过 JSONModel 和Mantle,使用简单无侵入。国内有大量使用者。

4.  Mantle      唱吧

Github 官方团队开发的JSON 模型转换库,Model 需要继承自MTLModel。功能丰富,文档完善,使用广泛。

类型转换太捉急 解析层次比较深的模型逻辑较为复杂

key mapper的逻辑真是要吐血

5.  JsonKit      

6.  TouchJson    13年之前比较流行

7.  SBJson  不建议使用

8.  原生Json 解析方法 NSJSONSerialization 速度比较快需要我们手动的去建立模型解析比较费时间。可以进行高效、自由的进行装换,但是繁琐,容易出现错误。

2013年数据统计结果

9.  FastEasyMapping

Yalantis 开发的一个JSON 模型转换库,可以自定义详细的 Model 映射过程,支持CoreData。使用者较少。

SBJSON在多数测试中都处于倒数的第一或倒数第二的位置。所以说,SBJSON实际上在性能这一点上讲,确实是非常“SB”的,实在不值得大家留念。赶快把你的JSON解析库换成其它的吧!

 

JSONKit本身做了很多内存上的优化,所以不支持ARC,你在使用时可以对其加上 -fno-objc-arc 的编译标志即可

 

数据对比:github 最新数据

 

2016年最新统计结果

用例2:WeiboStatus

 

从官方微博 App 抓取一条内容完整的微博数据,JSON总共有 580 行(是的,一条微博需要这么大数据量),包含大量嵌套对象、容器对象、类型转换、日期解析等。这个用例主要是测试在复杂的情况下不同库的性能。

每次测试执行 1000 次,统计耗时毫秒数。

测试结果如下:

 

Mantle在各个测试中,性能都是最差的

JSONModel和 MJExtension 性能相差不多,但都比 Mantle 性能高。

FastEasyMapping相对来说性能确实比较快。

YYModel性能高出其他几个库一个数量级,接近手写代码的效率。

FastEasyMapping不支持 NSCoding 协议,所以不能进行 Archive 的性能测试。

MJExtension在处理复杂对象转为 JSON 时,存在错误。

 

 

容错性:

容错性主要是测试在默认情况下,当 JSON格式错误时,Model框架是否会产生错误结果或造成 Crash

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值