【iOS开发】MJExtension的使用

  • JSONModel
NSDictionary *dict = @{@"name" : @"黄堡钦", @"address" : @"洪文六里"};
HBQUser *user = [HBQUser mj_objectWithKeyValues:dict];
NSLog(@"\n name = %@ \n address = %@\n", user.name, user.address);
image
  • JSONStringModel
NSString *jsonString = @"{\"name\":\"黄堡钦\", \"address\":\"洪文六里\"}";
HBQUser *user = [HBQUser mj_objectWithKeyValues:jsonString];
NSLog(@"\n name = %@ \n address = %@\n", user.name, user.address);
image
  • Model 中包含其他 Model
NSDictionary *dict = @{@"name" : @"X", @"firstUser" : @{@"name" : @"黄堡钦", @"address" : @"洪文六里"}};
HBQCompany *company = [HBQCompany mj_objectWithKeyValues:dict];
NSLog(@"\n company.name = %@ \n company.firstUser = %@ \n", company.name, company.firstUser);
image
  • Model 中包含 Model 数组
NSDictionary *dict = @{@"name" : @"X", @"firstUser" : @{@"name" : @"黄堡钦", @"address" : @"洪文六里"}, @"users" : @[@{@"name" : @"王五", @"address" : @"洪文六里"}, @{@"name" : @"李四", @"address" : @"洪文六里"}, @{@"name" : @"张三", @"address" : @"洪文六里"}]};
HBQCompany *company = [HBQCompany mj_objectWithKeyValues:dict];
NSLog(@"\n company.name = %@ \n company.firstUser = %@ \n company.users = %@ \n", company.name, company.firstUser, company.users);
#import "HBQCompany.h"

@implementation HBQCompany

+ (NSDictionary *)mj_objectClassInArray {
    return @{
             @"users" : @"HBQUser"
             };
}

@end
image
  • Model 属性名JSON 的 Key 的映射(或者多级映射)
// 将 Model 中的 name 改成 NAME 到字典中取值,也能将 name 映射到字典的更深层级用点语表示
+ (NSDictionary *)mj_replacedKeyFromPropertyName {
    return @{
             @"name" : @"NAME",
             @"address" : @"ADDRESS"
             };
}
  • JSON 数组Model 数组
NSArray *users = @[@{@"name" : @"黄堡钦1", @"address" : @"洪文六里"}, @{@"name" : @"黄堡钦2", @"address" : @"洪文六里"}, @{@"name" : @"黄堡钦3", @"address" : @"洪文六里"}, @{@"name" : @"黄堡钦4", @"address" : @"洪文六里"}, @{@"name" : @"黄堡钦5", @"address" : @"洪文六里"}];
NSArray *userArray = [HBQUser mj_objectArrayWithKeyValuesArray:users];
NSLog(@"%@", userArray);
  • ModelJSON
HBQUser *user = [[HBQUser alloc] init];
user.name = @"黄堡钦";
user.address = @"洪文六里";
NSDictionary *userDict = [user mj_keyValues];
NSLog(@"%@", userDict);
  • Model 数组JSON 数组
NSArray *dictArray = [User mj_keyValuesArrayWithObjectArray:userArray];
  • NSStringNSDate ,nil@""
- (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;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述 ​ iOS源码解析—YYModel(YYClassInfo)分析了如何根据OC的Class对象构建...
    egoCogito_panf阅读 11,677评论 4 32
  • 1、禁止手机睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa阅读 1,144评论 1 6
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472
  • 说来很惭愧,这么多年还是不能很好的控制自己的情绪,很容易受学生行为的影响。听了大家的讨论后,一直在想我们班有一娃,...
    123he阅读 228评论 0 0
  • 下午两点多的光景,阳光很好。温暖的光线,透过窗户正好照在我身上,我的办公桌上。暖洋洋的。 右手边的墙壁上,折射出斑...
    c56cbcc80239阅读 282评论 0 0