YYKit - YYModel 使用方法
来源:互联网 发布:淘宝拍a发b那些平台 编辑:程序博客网 时间:2024/05/16 10:43
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 <Foundation/Foundation.h>#import "Author.h"@interface Book : NSObject@property NSString *name;@property NSUInteger pages;@property Author *author; //Book 包含 Author 属性@end// Author 类 .h 文件#import <Foundation/Foundation.h>@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 链接:https://github.com/moon13sun/YYModelDemo
- YYKit - YYModel 使用方法
- YYKit系列之——YYModel使用
- YYKit系列之——YYModel使用(摘自GitHub)
- iOS YYModel使用方法
- YYKit Demo
- YYKit 学习
- YYModel详解
- iOS:YYModel
- YYKit之YYText阅读
- YYKit学习笔记
- YYKit 常见用法总结
- iOS YYKit理解
- YYKit 框架-很厉害
- YYModel源代码分析(三)NSObject+YYModel
- YYModel的源码读后感
- YYModel 简介与使用
- 自定义YYModel多层转换
- YYModel 源码解析
- nyoj 586 疯牛
- 跨窗口通信的几种方法
- Android工具类之Toast统一管理类
- 【Android】Eclipse自动编译NDK/JNI
- 网页制作工具
- YYKit - YYModel 使用方法
- Java多线程总结之线程安全队列Queue
- UICollectionViewLayout的使用
- Hbase的table存储详解
- 判断单选框是否选中
- Android系统中的.apk文件和dex文件
- bootstrap简介
- 【Python】爬虫小结
- NOIP 2012 开车旅行