MJExtension解析http协议

    首先要先了解MJExtension是什么,这里有很明确的说明,你也可以通过下载它的代码来运行里面的demo进一步了解如何使用,具体的细节不用了解很清楚,只要会用就可以了.

    使用MJExtension我们会发现,我们要手动写很多代码来定义模型(结构),还要对一些和系统关键字或者属性重名的属性进行重命名.有了ESJsonFormat-Xcode插件,我们可以在这里得到帮助,并可以测试下readMe中的demo,你会发现ESJsonFormat会为我们生产很多模型,并且是支持泛型的,但是MJExtension现在还不支持泛型.所以对于模型中存在模型数组的,还是要对数组指定类型,有两种方式

[Student mj_setupReplacedKeyFromPropertyName:^NSDictionary *{    
return @{};
}];

类似这种方式,返回一个字典,来为Student类中的属性改名

@implementation Student
+ (NSDictionary *)replacedKeyFromPropertyName {
    return @{@"desc" : @"description"
             };
}
@end

通过在类的实现文件中重写replacedKeyFromPropertyName方法,因为NSObject+MJProperty.h中对NSObject方法进行了扩展,replacedKeyFromPropertyName也是NSObject的属性了,所以通过这种方式可以对属性改名.

同理objectClassInArray属性也是一样的道理,现在objectClassInArray是一定要指定模型中数组元素的类型的,以后MJExtension支持泛型估计就不用了.

当然,通过这样的方式有时候对于复杂的jason我们不一定能够通过ESJsonFormat-Xcode一次进行完美的生产模型,这就要我们在生成的基本模型框架上进行一些校正,最后在调用的时候只要一句话

Student *stu = [Student mj_objectWithKeyValues:jason];

jason是你的数据,这里由于是id类型,也可以传字典,plist,总之,总有一款适合你.

你可能感兴趣的:(MJExtension解析http协议)