// 最简单的转换
@interface User : NSObject// 模型
@property (nonatomic,copy)NSString *name;
@property (nonatomic,copy)NSString *icon;
@property (nonatomic,assign)int age;
@property (nonatomic,copy)NSString *height;
@property (nonatomic,strong)NSNumber *money;
@property (nonatomic,strong)NSNumber *sex;
@property (nonatomic,assign)BOOL gay;
@end
// 字典
NSDictionary *dic = @{
@"name" : @"Jack",
@"icon" : @"lufy.png",
@"age" : @"20",
@"height" : @1.55,
@"money" : @"100.9",
@"sex" : @(20),
@"gay" : @"1"
};
/**
* 通过字典来创建一个模型
* @param keyValues 字典(可以是NSDictionary、NSData、NSString)
* @return 新建的对象
*/
User *user = [User mj_objectWithKeyValues:dic];
NSLog(@"%@--%@---%d--%@",user.name,user.icon,user.age,user.height);
控制台打印:2016-11-14 16:48:35.255 MJ转换Model[4177:304668] Jack--lufy.png---20--1.55
// 特殊字符处理
#import "MJExtension.h"
@implementation Book
- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property
{
if ([property.name isEqualToString:@"publisher"]) {
if (oldValue == nil) return @"";
} else if (property.type.typeClass == [NSDate class]) {
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
fmt.dateFormat = @"yyyy-MM-dd";
return [fmt dateFromString:oldValue];
}
return oldValue;
}
@end
// NSDictionary
NSDictionary *dict = @{
@"name" : @"5分钟突破iOS开发",
@"publishedTime" : @"2011-09-10"
};
// NSDictionary -> Book
Book *book = [Book mj_objectWithKeyValues:dict];
// printing
NSLog(@"name=%@, publisher=%@, publishedTime=%@", book.name, book.publisher, book.publishedTime);