文档章节

MJExtension,JSON数据与Model的转换

iOS赵师顺
 iOS赵师顺
发布于 2016/11/14 17:42
字数 218
阅读 1.5K
收藏 0
// 最简单的转换


@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/daniels/blog/539634

iOS赵师顺
粉丝 3
博文 74
码字总数 36150
作品 0
昌平
程序员
私信 提问
加载中

评论(0)

关于JSONModel和MJExtension的性能对比

最初我在微博上看到MJExtension的发布的时候,声称它比其他JSONModel等其他Data model快上好多倍,当时我正在用JSONModel,感觉这个事情很神奇,但是一直没有去看看MJExtension具体是怎么做到...

贝勒老爷
2018/08/15
0
0
手把手教你使用MJExtension(简单使用)

一、MJExtension第三方框架 我们在iOS开发过程中,我们常常需要将字典数据(也就是JSON数据)与Model模型之间的转化,例如网络请求返回的微博数据、等等,如果我们自己全部手动去创建模型并赋值...

贝勒老爷
2018/08/15
0
0
OC中第三方库MJExtension的使用

MJExtension是一套常用的"字典和模型之间互相转换"的框架,在项目中也使用过,现在记录一下。随着Swift的普及,在Swift中也有一个类似功能的框架HandyJSON 也非常好用。有空我也会介绍一下这...

osc_h3robkrt
2018/02/27
2
0
序列化框架MJExtension详解 + iOS ORM框架

当开发中你的模型中属性名称和 字典(JSON/XML) 中的key 不能一一对应时, 或者当字典中嵌套了多层字典数组时..., 以及教你如何用 MJExtension 配置类来统一管理你的模型配置, 下面罗列了开发中...

osc_lmwjsnx3
2018/06/05
1
0
IOS 字典模型互转框架 MJExtension

详细轻参考:https://github.com/CoderMJLee/MJExtension 功能很牛掰 能做什么? MJExtension是一套的超轻量级框架 MJExtension能完成的功能 --> --> --> --> 详尽用法主要参考 main.m中的各...

卧龙小
2015/04/07
1.7W
1

没有更多内容

加载失败,请刷新页面

加载更多

daily work report on May 25,2020

React-Native工程师 岗位要求 1、三年以上基于React-Native技术完成电商平台app混合开发实际工作经验,熟悉电商平台相关业务。 2、能熟练掌握React-Native,并能基于该技术独立完成相关工作,...

qwfys
22分钟前
23
0
HTTP/3 未来可期?

点击上方“朱小厮的博客”,选择“设为星标” 后台回复"加群",加入新技术 2015 年 HTTP/2 标准发表后,大多数主流浏览器也于当年年底支持该标准。此后,凭借着多路复用、头部压缩、服务器推...

osc_3b0dcpcm
23分钟前
8
0
【原创】JVM系列01 | 开篇

  20大进阶架构专题每日送达   1. Java 虚拟机是什么? 1.1 虚拟机   虚拟机:虚拟的计算机,一个用来执行虚拟计算机指令的软件。   虚拟机分为系统虚拟机和程序虚拟机。   系统虚...

osc_0k23td2u
24分钟前
8
0
Flink 1.10 细粒度资源管理解析

相信不少读者在开发 Flink 应用时或多或少会遇到在内存调优方面的问题,比如在我们生产环境中遇到最多的 TaskManager 在容器化环境下占用超出容器限制的内存而被 YARN/Mesos kill 掉[1],再比...

osc_n0c6719w
25分钟前
17
0
IDEA使用技巧-->查看继承关系

在开发中项目庞大的时候你会不知道当前类在项目中的使用情况,在哪被继承?在哪被实现?和谁有关联? 快捷键 eclipse中是: ctrl+tidea中是: ctrl+H点击当前类, 然后ctrl+H...

宇宝
26分钟前
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部