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 获取到模型数组 

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




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

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

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

MJExtension使用,数据跟模型之间的相互转换

MJExtension使用(转) 1. MJExtension使用指导(最新) 2. MJExtension[模型字典]包含[模型字典数组]解析数据的bug及处理方法 ...
  • m7723sun
  • m7723sun
  • 2016年09月13日 22:09
  • 2662

IOS 字典模型互转框架 MJExtension

MJExtension是一套字典和模型之间互相转换的超轻量级框架 MJExtension能完成的功能 字典(JSON) --> 模型(Model) 模型(Model) --> 字...
  • liuzhihui666
  • liuzhihui666
  • 2017年04月08日 17:01
  • 200

MJExtension模型互转框架点简单使用

MJExtension能做什么? MJExtension是一套字典和模型之间互相转换的超轻量级框架 MJExtension能完成的功能 字典(JSON) --> 模型(Model) 模型...
  • p1129530686
  • p1129530686
  • 2016年08月02日 09:30
  • 1995

字典转换成模型简单的介绍与使用

字典转模型 0> 字典转模型的含义: 把字典中的数据使用模型来保存。新建一个类, 根据字典中键值对的个数, 来编写这个类中的属性, 将来用这个类的对象的属性来保存字典中每个键对应的值。 ...
  • ABC__D
  • ABC__D
  • 2016年05月13日 15:01
  • 1412

runtime模型与字典互转

原文出自:标哥的技术博客 前言在开发中必不可少的模型与字典互转,但是一直以来都是使用他人的库,从来没有研究其原理或者说深究其所以然。现在,在这里我们一起来学习通过runtime完成模型与字典的互转。声...
  • woaifen3344
  • woaifen3344
  • 2015年12月29日 19:20
  • 2143

使用KVC进行字典转模型

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

iOS中字典转模型的方法及底层原理

1 自动打印属性字符串分类 提供一个分类,专门根据字典生成对应的属性字符串。 @implementation NSObject (Property) + (void)PH_createPro...
  • intheair100
  • intheair100
  • 2017年06月07日 21:19
  • 819

MJExtention 字典转模型详解使用注意以及利用runtime字典转模型的使用注意

MJEXTENTION提供一下功能: 简单的字典 --> 模型JSON字符串 --> 模型复杂的字典 --> 模型 (模型里面包含了模型)复杂的字典 --> 模型 (模型的数组属性里面又装着...
  • u011146511
  • u011146511
  • 2016年04月25日 00:14
  • 1169

iOS数据处理之字典转模型

当程序中有需要用到plist文件去存储一些东西的时候,我们在程序中也需要动态地去获取到plist文件中的内容并且使用它们。在MVC设计模式中,M指的是modal,代表着程序需要的数据,所以我们需要创建...
  • nineteen_
  • nineteen_
  • 2015年09月18日 20:41
  • 1706
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MJExtension 2.0 字典转模型再叙 常用的字典转模型使用实例说明
举报原因:
原因补充:

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