首先要先了解MJExtension是什么,这里有很明确的说明,你也能够经过下载它的代码来运行里面的demo进一步了解如何使用,具体的细节不用了解很清楚,只要会用就能够了.git
使用MJExtension咱们会发现,咱们要手动写不少代码来定义模型(结构),还要对一些和系统关键字或者属性重名的属性进行重命名.有了ESJsonFormat-Xcode插件,咱们能够在这里获得帮助,并能够测试下readMe中的demo,你会发现ESJsonFormat会为咱们生产不少模型,而且是支持泛型的,可是MJExtension如今还不支持泛型.因此对于模型中存在模型数组的,仍是要对数组指定类型,有两种方式github
1 数组
[Student mj_setupReplacedKeyFromPropertyName:^NSDictionary *{ return @{}; }];
相似这种方式,返回一个字典,来为Student类中的属性更名框架
2 测试
@implementation Student + (NSDictionary *)replacedKeyFromPropertyName { return @{@"desc" : @"description" }; } @end
经过在类的实现文件中重写replacedKeyFromPropertyName方法,由于NSObject+MJProperty.h中对NSObject方法进行了扩展,replacedKeyFromPropertyName也是NSObject的属性了,因此经过这种方式能够对属性更名.spa
同理objectClassInArray属性也是同样的道理,如今objectClassInArray是必定要指定模型中数组元素的类型的,之后MJExtension支持泛型估计就不用了.插件
固然,经过这样的方式有时候对于复杂的jason咱们不必定可以经过ESJsonFormat-Xcode一次进行完美的生产模型,这就要咱们在生成的基本模型框架上进行一些校订,最后在调用的时候只要一句话code
Student *stu = [Student mj_objectWithKeyValues:jason];
jason是你的数据,这里因为是id类型,也能够传字典,plist,总之,总有一款适合你.orm