MJExtension 2.0 字典转模型再叙 常用的字典转模型使用实例说明

原创 2015年11月19日 13:57:46

不知道MJExtension什么时候升到 2.0 了然后出现了一些问题,经过一番法研究终于搞定了


 首先要注意的网络请求之后得到的字典结构是什么样的

一 :模型中有个数组属性,数组里面又要装着其他模型

//重要的就是这句要怎么做(保留的模型)

1.其中一种声明方法:(使用方法:直接在网络请求之后获得的字典之后)

      //此处的 data必须是网络请求之后的字典(因为AFN默默地帮我们转好了中的关键词

      //不然的话转换出来的东西就为空

      //此处的CFData必须是要保存的模型类型,要声明class


     [CFNotesResultmj_setupObjectClassInArray:^NSDictionary *{

             return @{@"data" : @"CFData"};}];


2.另一种实现保留模型的方法:(使用方法:在模型的.m文件中实现下面方法)

+ (NSDictionary *)mj_objectClassInArray

{

   return @{@"data" : @"CFData"};

}

//此处是对整个 返回的json结果进行模型转换

// 此处直接从result用.语法就可以取到属性data(其中放的是模型数组)

          NSArray *notes = result.data;

二:  此处是返回的字典数组 进行转模型操作    
 
1. 直接获取数组(result 中data对应的就是 数组)
     NSArray *projecrArray = [subModel   mj_objectArrayWithKeyValuesArray:result[@"data"]];

2. 想要在模型中保留数组  (直接上项目代码)
 

#import <Foundation/Foundation.h>
/**  *  项目列表 */
@class Project;
@interface Projects : NSObject
#warning 此处的 projects为返回的字典中的关键字
@property (nonatomic,strong) NSMutableArray *projects;

@end
@interface Project : NSObject <NSCopying,NSMutableCopying>
@property (nonatomic,copy)NSString *addrs;
@property (nonatomic,copy)NSString *all_price;
@property (nonatomic,copy)NSString *cpai_num;
@property (nonatomic,copy)NSString *created;
@property (nonatomic,copy)NSString *dtime;
@property (nonatomic,copy)NSString *fp_time;

/** *  自己是否关注该项目 收藏状态  */
@property (nonatomic,assign) int hasliked;
@property (nonatomic,copy)NSString *ID;
@property (nonatomic,copy)NSString *jianmianji;
@property (nonatomic,copy)NSString *level;

/** *  多少人喜欢 */
@property (nonatomic,copy)NSString *liked;
@property (nonatomic,copy)NSString *name;
@property (nonatomic,copy)NSString *score;
@property (nonatomic,copy)NSString *sellmianji;
@property (nonatomic,copy)NSString *status;
@property (nonatomic,copy)NSString *vote_num;

@property (nonatomic,copy)NSString *jindu;
@property (nonatomic,copy)NSString *jindu_level;


/**
 *   po result
 {
 data =     {
 projects =         (
 {
 addrs = "\U91ce\U751f\U52a8\";
 "all_price" = 9000;
 "cpai_num" = 0;
 created = 2014;
 dtime = 0;
 "fp_time" = 1448193215;
 id = 1;
 jianmianji = 72000;
 level = 4;
 liked = 0;
  score = 30;
 sellmianji = 0;
 status = 1;
 "vote_num" = 0;
 }
 );
 };
 info = "";
 status = 1;
 }
 */
@end
#import "Projects.h"

@implementation Projects
+(NSDictionary *)mj_objectClassInArray
{
    return @{
             @"projects" : @"Project"
#warning  此处的 projects 为字典中 的关键字 Project为自己想要保存的模型
             };
}
/**
  // JSON array -> User array
 NSArray *userArray = [User mj_objectArrayWithKeyValuesArray:dictArray];
 */
@end

@implementation Project
+ (NSDictionary *)mj_replacedKeyFromPropertyName
{
    return @{
             @"ID" : @"id"
             };
#warning  此处的ID 为替代 返回的字典中的关键字id
}

@end

附使用  :

// 此处直接就获得  模型数组

        self.projectsArr = [Project mj_objectArrayWithKeyValuesArray:[result objectForKey:@"data"]];

//或者 

Projects *projects  =    [Projects mj_objectWithKeyValues:result];

  //然后直接就能  projects.projects 获取到模型数组 

老掉牙的话:字典转模型是不是有必要 要看自己的使用习惯 ,有人用惯了 使用字典的[@""] ,有人喜欢使用模型的. 




版权声明:欢迎学习交流。

相关文章推荐

MJExtension 字典转模型高级使用技巧

当开发中你的模型中属性名称和 字典(JSON/XML) 中的key 不能一一对应时, 或者当字典中嵌套了多层字典数组时…, 以及教你如何用 MJExtension 配置类来统一管理你的模型配置, 下面...
  • jsd0915
  • jsd0915
  • 2017年02月28日 19:55
  • 235

IOS复习 九宫格 字典转模型与懒加载 xib界面控件代码赋值 模拟下载过程 MJExtension

#import @interface ViewControllerModels : NSObject @property (nonatomic,copy)NSString *name; @p...
  • ridxmc
  • ridxmc
  • 2016年06月13日 10:30
  • 447

字典转模型之KVC和MJExtension底层实现

一 快速生成@property1 当我们需要用模型去实现一个比较小的功能的时候,由于我们需要对plist文件进行转化成模型,那么很有可能我们拿到的plist文件中的属性很多,但是我们又因为只需要研究一...

runtime从入门到精通(八)—— 使用runtime实现字典转模型

由于文章篇幅长度原因,笔者单独用一篇文章来介绍使用runtime来实现字典转模型。查看完整的runtime在实际开发中的使用点击链接 ——> runtime从入门到精通(六)—— runtime在实际...

XZ_iOS之Runtime使用运行时实现字典转模型和关联对象

使用运行时实现字典转模型和关联对象objc_get/setAssociatedObject() 创建一个类Person,重写它的description方法,打印出它的属性值。 XZPerson...

Runtime的使用3 【字典转模型】

提到字典转模型,MJExtension类似这个库,用过的就晓得转成model是多么的便捷。 本文就dictionary  -> model 略微介绍以下。 首先,创建一个model类。 @inte...
  • WiKi_Su
  • WiKi_Su
  • 2017年07月13日 18:23
  • 76

使用KVC进行字典转模型

在项目中我们一般的都会碰到Json字段请求回来进行模型封装的情况,一般我们是建立一个Model然后Model里面有Json请求回来的模型字典里的各种字段,类似 name,age…….之类的。封装的时候...

字典转模型

  • 2015年09月15日 13:01
  • 798KB
  • 下载

字典转模型

  • 2016年04月25日 15:28
  • 203KB
  • 下载

使用Swift 字典模型互转 就是这么简单

写在前面的话现在很多iOS项目的开发开始转向Swift语言。 相信 Swift语言很快会成为iOS工程师 必备技能。 字典转模型, 模型转转字典在开发过程中扮演非常重要的角色。 今天就和大家分享一下...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MJExtension 2.0 字典转模型再叙 常用的字典转模型使用实例说明
举报原因:
原因补充:

(最多只允许输入30个字)