【iOS開(kāi)發(fā)】MJExtension的使用

  • JSON 轉(zhuǎn) Model
NSDictionary *dict = @{@"name" : @"黃堡欽", @"address" : @"洪文六里"};
HBQUser *user = [HBQUser mj_objectWithKeyValues:dict];
NSLog(@"\n name = %@ \n address = %@\n", user.name, user.address);
image
  • JSONString 轉(zhuǎn) Model
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 數(shù)組
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 的映射(或者多級(jí)映射)
// 將 Model 中的 name 改成 NAME 到字典中取值,也能將 name 映射到字典的更深層級(jí)用點(diǎn)語(yǔ)表示
+ (NSDictionary *)mj_replacedKeyFromPropertyName {
    return @{
             @"name" : @"NAME",
             @"address" : @"ADDRESS"
             };
}
  • JSON 數(shù)組 轉(zhuǎn) Model 數(shù)組
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);
  • Model 轉(zhuǎn) JSON
HBQUser *user = [[HBQUser alloc] init];
user.name = @"黃堡欽";
user.address = @"洪文六里";
NSDictionary *userDict = [user mj_keyValues];
NSLog(@"%@", userDict);
  • Model 數(shù)組 轉(zhuǎn) JSON 數(shù)組
NSArray *dictArray = [User mj_keyValuesArrayWithObjectArray:userArray];
  • NSString 轉(zhuǎn) NSDate ,nil 轉(zhuǎn) @""
- (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;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 概述 ? iOS源碼解析—YYModel(YYClassInfo)分析了如何根據(jù)OC的Class對(duì)象構(gòu)建...
    egoCogito_panf閱讀 11,677評(píng)論 4 32
  • 1、禁止手機(jī)睡眠[UIApplication sharedApplication].idleTimerDisabl...
    DingGa閱讀 1,144評(píng)論 1 6
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,217評(píng)論 30 472
  • 說(shuō)來(lái)很慚愧,這么多年還是不能很好的控制自己的情緒,很容易受學(xué)生行為的影響。聽(tīng)了大家的討論后,一直在想我們班有一娃,...
    123he閱讀 228評(píng)論 0 0
  • 下午兩點(diǎn)多的光景,陽(yáng)光很好。溫暖的光線,透過(guò)窗戶正好照在我身上,我的辦公桌上。暖洋洋的。 右手邊的墻壁上,折射出斑...
    c56cbcc80239閱讀 282評(píng)論 0 0