使用MJExtension框架,是最常见的不过了,本文主要关注以下几点,这地方就不在造轮子了,发现一个讲的比较好的,http://www.jianshu.com/p/4782fbd029cc
1.Model中的关键字处理
- 简单的字典 --> 模型
- JSON字符串 --> 模型
- 复杂的字典 --> 模型 (模型里面包含了模型)
模型类User定义:
typedef enum {
SexMale,
SexFemale
} Sex;
@interface User : NSObject
@property (copy, nonatomic) NSString *name;/* 姓名 */
@property (copy, nonatomic) NSString *icon;/* 头像 */
@property (assign, nonatomic) unsigned int age;/* 年龄 */
@property (copy, nonatomic) NSString *height;/* 身高 */
@property (strong, nonatomic) NSNumber *money;/* 资产 */
@property (assign, nonatomic) Sex sex;/* 性别 */
@property (assign, nonatomic, getter=isGay) BOOL gay;/* 是否是同性恋 */
@end
使用实例:
NSDictionary *dict = @{
@"name" : @"Jack",
@"icon" : @"lufy.png",
@"age" : @20,
@"height" : @"1.55",
@"money" : @100.9,
@"sex" : @(SexFemale),/* 枚举需要使用NSNumber包装 */
@"gay" : @"NO"
};
//字典转模型,使用的是mj_objectWithKeyValues:方法
User *user = [User mj_objectWithKeyValues:dict];
第二个问题:JSON字符串 --> 模型
使用实例:
// 定义一个JSON字符串
NSString *jsonString = @"{\"name\":\"Jack\", \"icon\":\"lufy.png\", \"age\":20}";
// JSON字符串转模型
User *user = [User mj_objectWithKeyValues:jsonString];
第三个问题:复杂的字典 --> 模型 (模型里面包含了模型)
模型类Status定义:
@interface Status : NSObject
@property (copy, nonatomic) NSString *text;
@property (strong, nonatomic) User *user;/* 其他模型类型 */
@property (strong, nonatomic) Status *retweetedStatus;/* 自我模型类型 */
@end
使用实例:
第一个问题: 关键字的处理
在Model里面使用mj_replacedKeyFromPropertyName方法替换掉关键字
+ (NSDictionary *)mj_replacedKeyFromPropertyName{
return @{@"new":@"good"};
}