MJExtension,JSON数据与Model的转换

// 最简单的转换


@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);

 

转载于:https://my.oschina.net/iOScoderZhao/blog/787588

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值