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 使用方法相关推荐

  1. iOS YYModel使用方法

    文档地址:https://github.com/ibireme/YYModel NSDictionary *testDic = @{@"groupId":@"01&quo ...

  2. iOS YYModel的使用

    YYModel是YYKit的高效组件之一,在实际场景中的非常实用,运用于项目中使用MVC或MVVM架构时,使用model做数据处理. 一.常用的方法 // 字典转模型 + (nullable inst ...

  3. YYModel Summary

    YYModel Effect-> YYModel的作用 Provide some data-model method->提供一些数据模型的方法 Convert json to any ob ...

  4. 《一篇文章全吃透》—YYModel的使用技巧

    一YYModel的使用场景 简单的 Model 与 JSON 相互转换 Model 属性名和 JSON 中的 Key 不相同 Model 包含其他 Model 容器类属性 黑名单与白名单 数据校验与自 ...

  5. 史上最全YYModel的使用详解

    原文链接:http://www.jianshu.com/p/25e678fa43d3 demo链接:https://github.com/walkertop/YYModel---Demo 插件链接:h ...

  6. YYModel 源码分析:字典转模型

    本文拿一个简单的例子,看 YYModel 字典转模型的源代码 有这么个模型 @interface Author : NSObject @property NSString *name; @proper ...

  7. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群

    作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...

  8. Java面试题大全2021版

    一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...

  9. YYKit系列之——YYModel使用(摘自GitHub)

    简单的 Model 与 JSON 相互转换 <span style="font-weight: normal;">// JSON: {"uid":1 ...

最新文章

  1. 2017年诺贝尔生理学或医学奖揭晓
  2. 【像程序员一样思考】 读书笔记2
  3. Redis 6.0 新特性,多线程连环 13 问!
  4. 微服务架构·基础篇,傻瓜看了都会
  5. 浅谈虚拟化技术下的云安全如何处置
  6. 进击的Objective-C--------Objective-C基础(-)
  7. centos的mysql怎么删用户_linux/centos给Mysql创建用户、授权、查看、删除、修改密码、撤...
  8. 华为防火墙Edumon1000E配置
  9. 年底清理垃圾了,整理了一整套python学习资料无偿送给大家
  10. oracle 常见错误
  11. (转)币圈人物志 BM(EOS,BTS,Steem缔造者)
  12. 如何编译Android的kernel,如何下载并编译Android 4.0内核源码Goldfish(图文)
  13. 除了大家知道的navicat,再介绍两款免费的数据库连接工具
  14. 8000401a 因为配置标志不正确 错误及解决办法
  15. python计算手机销量年增长率_python如何计算环比增长率
  16. 怎么样可以在网络上赚钱,告诉你网上赚钱的5种方法!
  17. 计算机上播放时没声音什么故障,电脑播放视频没有声音是什么原因
  18. tcpreplay linux,Linux——Tcpreplay
  19. DRM系列(3)之DRM_IOCTL_MODE_MAP_DUMB
  20. 输入一个字母,若是小写字母,则变为大写输出,否则,原样输出。

热门文章

  1. 【Java八股文之进阶篇(三)】多线程编程核心之锁框架(一)
  2. C++鼠标锁定或乱跳(坑人必备)
  3. 【JZOJ 5405】【NOIP2017提高A组模拟10.10】Permutation
  4. mybatis学习:二、 Mybatis的Dao开发、mybatis-config.xml文件的详情
  5. 学习STM32单片机,从菜鸟到牛人就是这么简单
  6. 叮咚买菜2021第四季度财报数据公布:上海地区实现盈利
  7. 推荐人工智能编程的必读书籍
  8. lumia1520 越狱_尝试诺基亚Lumia 1020-内置电话的相机
  9. c语言程序表达语句,《C语言程序设计》讲稿.doc
  10. macd的python代码同花顺_超牛MACD(代编写程序化交易模型)-同花顺公式 -程序化交易(CXH99.COM)...