博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS json解析 及 MJExtension
阅读量:5243 次
发布时间:2019-06-14

本文共 1314 字,大约阅读时间需要 4 分钟。

网络数据解析框架  

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。

 

MJExtension详解:http://www.jianshu.com/p/93c242452b9b

转载于:https://www.cnblogs.com/yunduandeni/p/6737532.html

你可能感兴趣的文章
java equals 小记
查看>>
爬虫-通用代码框架
查看>>
2019春 软件工程实践 助教总结
查看>>
YUV 格式的视频呈现
查看>>
Android弹出框的学习
查看>>
现代程序设计 作业1
查看>>
在android开发中添加外挂字体
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
多线程实现资源共享的问题学习与总结
查看>>
Learning-Python【26】:反射及内置方法
查看>>
torch教程[1]用numpy实现三层全连接神经网络
查看>>
java实现哈弗曼树
查看>>
转:Web 测试的创作与调试技术
查看>>
python学习笔记3-列表
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
线程androidAndroid ConditionVariable的用法
查看>>
FTTB FTTC FTTH FTTO FSA
查看>>
stap-prep 需要安装那些内核符号
查看>>
网易杭研后台技术中心的博客 -MYSQL :OOM
查看>>