博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
YYKit - YYModel 使用方法
阅读量:4047 次
发布时间:2019-05-24

本文共 1800 字,大约阅读时间需要 6 分钟。

1.最简单的 Model 与 Json (字典)转换,直接调用 YYModel 的 类方法:

yy_modelWithDictionary: , 代码如下:

Book *book = [Book yy_modelWithDictionary:dict];    Book *book = [Book yy_modelWithJSON:json];

2.当json(字典)中含有多层,但我们只需要里面几条数据时,可以把 字典中的 需要的 key 值,映射到模型中的 属性,只需要在 Model 中实现 YYModel 的 一个类方法: + (NSDictionary *)modelCustomPropertyMapper 即可

示例代码如下:

有一个字典:

NSDictionary *dict = @{                           @"author":@{                               @"name":@"J.K.Rowling",                               @"birthday":@"1965-07-31"                           },                             @"name":@"Harry Potter",                             @"pages":@339                             };

如果想在一个模型中,访问到所有信息,可以将 author 中的 key 值,映射到 模型中的 authorName, authorBirthday

+ (NSDictionary *)modelCustomPropertyMapper{    return @{@"authorName" : @"author.name",  // 层级之间用 '.' 隔开             @"authorBirthday" : @"author.birthday"             };}

示例代码中,将 字典中的

3.如果需要访问的数据较多,而且在不同层级,就需要建立对应层级的模型,.在转 模型 时,并不需要我们一层层亲自去转.我们只需要创建好对应的模型, 并在模型中添加对应 key 的属性, 把最外层转为对应的模型即可.

例如 将 示例2 中的字典转为模型,需要创建两个类,Book 和 Author,代码如下:

// Book 类.h 文件#import 
#import "Author.h"@interface Book : NSObject@property NSString *name;@property NSUInteger pages;@property Author *author; //Book 包含 Author 属性@end// Author 类 .h 文件#import
@interface Author : NSObject@property NSString *name;@property NSDate *birthday;@end

然后,在需要的地方直接调用 YYModel 的类方法,将字典转为 Book 类模型,就可以通过点语法访问到 author 中的 name 和 birthday

@implementation ViewController- (void)viewDidLoad {    [super viewDidLoad];        Book *book = [Book yy_modelWithDictionary:dict];   NSLog(@"\n%@\n%ld\n{%@,%@}",book.name,book.pages,book.author.name,book.author.birthday);

** 这里需要注意的是,Book 类中需要包含 author 属性

这里只是介绍了一下 字典 转模型的例子,下面链接提供了一个小 Demo,里面很清楚介绍了 字典模型互转,key 值 和属性映射,以及黑名单 和白名单的使用,很容易看懂.

Demo 链接:

转载地址:http://xfwci.baihongyu.com/

你可能感兴趣的文章
高可用性系统在大众点评的实践与经验
查看>>
美团酒店Node全栈开发实践
查看>>
分布式缓存负载均衡负载均衡的缓存处理:虚拟节点对一致性hash的改进
查看>>
分布式存储系统设计(1)—— 系统架构
查看>>
分布式存储系统设计(2)—— 数据分片
查看>>
架构师之路--视频业务介绍,离线服务架构和各种集群原理
查看>>
mysql、zookeeper、redis和elasticsearch主从同步机制
查看>>
MySQL数据库的高可用方案总结
查看>>
git 配置多个SSH-Key
查看>>
nodejs真的是单线程吗?
查看>>
JavaScript 模板引擎实现原理解析
查看>>
如何理解和熟练运用js中的call及apply?
查看>>
koa-源码分析
查看>>
co模块用法及分析
查看>>
深入理解Node.js垃圾回收与内存管理
查看>>
深入剖析Nodejs的异步IO
查看>>
MySQL for Mac安装和启动
查看>>
【mysql】查询某一年 某一月 某一天的数据 转载 2017年05月18日 15:22:51
查看>>
webstorm 2018 激活破解方法大全
查看>>
数据库分组查询最大值的问题
查看>>