MJExtension库是干什么的用的?

MJExtension库是一个轻量级的字典和模型之间相互转换的轻量级框架

开发过程中有些数据解析过程可能比较复杂,重复代码比较多,并且容易出现问题,使用MJextension可以使代码更加清晰简洁

如何使用MJExtension

一、首先在viewController.m导入MJExtension库,可以手动导入也可以使用cocoPods,建议使用cocopods(cocopods使用方法比较简单方便

二、通过AFNetworking或其他方式请求到数据,我请求的数据打印出来如下:

TestDicAipay---{
   "is_have_ds" = 1;
   "is_hn" = 0;
   "man_count" = 4;
   "man_list" =     (
               {
           area = "\U5b81  \U590f";
           jobs = "\U660e\U661f\U6a21\U7279";
           mobile = 18519668491;
           nickname = "\U6211\U662f";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-07-18/150035766163.jpeg";
       },
               {
           area = "\U5c71\U897f\U7701";
           jobs = "\U81ea\U7531\U804c\U4e1a";
           mobile = 15364600910;
           nickname = "\U5c0f\U56db";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-07-26/15010716051.jpeg";
       }              
   );
   "woman_count" = 20;
   "woman_list" =     (
               {
           area = "\U4e0a\U6d77\U5e02";
           jobs = "\U6587\U79d8\U52a9\U7406";
           mobile = 15313569674;
           nickname = "\U6587\U6587";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-01-12/58774313d4d16.jpg";
       },
               {
           area = "\U5317\U4eac\U5e02";
           jobs = "\U7f51\U7ea2";
           mobile = 13078763504;
           nickname = "\U8bfa\U96c5";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-05-26/149576712220.jpeg";
       },
               {
           area = "\U53f0  \U6e7e";
           jobs = "\U7f51\U7ea2";
           mobile = 15601282577;
           nickname = "\U5973\U738bC-cup";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-01-05/586dbaf83217a.jpg";
       },
               {
           area = "\U6d59\U6c5f\U7701";
           jobs = "\U81ea\U5a92\U4f53\U4eba";
           mobile = 18225221622;
           nickname = "\U5f90\U5b50\U6db5";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-01-10/58749c1deaece.jpg";
       },
               {
           area = "\U5c71\U4e1c\U7701";
           jobs = "\U827a\U4eba\U7ecf\U7eaa";
           mobile = 15811048531;
           nickname = "\U96e8\U6167";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-01-05/586dbc17992bd.jpg";
       },
               {
           area = "\U5b89\U5fbd\U7701";
           jobs = "\U660e\U661f\U6a21\U7279";
           mobile = 15811043857;
           nickname = "\U73e0\U5a77";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-01-05/586d9c04a7c54.jpg";
       },
               {
           area = "\U5c71\U4e1c\U7701";
           jobs = "\U660e\U661f\U6a21\U7279";
           mobile = 15811043767;
           nickname = "\U51cc\U6b23";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-05-26/149576449686.jpeg";
       },
               {
           area = "\U6e56\U5317\U7701";
           jobs = "\U7f51\U7ea2";
           mobile = 15213744879;
           nickname = "\U9759\U9999";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-01-13/58783d1fb1f53.jpg";
       },
               {
           area = "\U5317\U4eac\U5e02";
           jobs = "\U660e\U661f\U6a21\U7279";
           mobile = 15910482780;
           nickname = "\U5a05\U8431";
           thumb = "https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-01-18/587ecd92f118f.jpg";
       }
   );
}

三、导入#import "MJExtension.h"使用该库完成数据解析

  1. 创建一个数据类ComplexModel如下,
    // .h文件
#import <Foundation/Foundation.h>

@interface ComplexModel : NSObject
@property (nonatomic,copy)NSString * is_have_ds;
@property (nonatomic,copy)NSString * is_hn;
@property (nonatomic,copy)NSString * man_count;
@property (nonatomic,copy)NSString * woman_count;
@property (nonatomic,strong)NSMutableArray * man_list;
@property (nonatomic,strong)NSMutableArray * woman_list;
@end

// .m文件

#import "ComplexModel.h"

@implementation ComplexModel
+ (NSDictionary *)mj_objectClassInArray
{
    return @{
             @"man_list" : @"Man_list_Model",
             @"woman_list" : @"Man_list_Model"
             };
}

@end

2.在viewController.m文件中,请求到数据的位置写如下代码

//TestDicAipay是请求到的数据字典,如最文章上端代码
ComplexModel * _complexModel = [ComplexModel mj_objectWithKeyValues:TestDicAipay];
NSLog(@"%@\n%@\n%@\n%@\n",_complexModel.is_have_ds,_complexModel.is_hn,_complexModel.man_count,_complexModel.woman_count);

打印结果如下:

2018-01-02 13:14:31.030 WeichartPay[10249:556133] 
1
0
4
20

到这里我们就把字典中最外层的数据解析出来啦,紧接着我们需要解析一下数据中man_list和woman_list两个数组中的字典解析出来

3.首先创建一个新的类,存放man_list里的数据,如下
// .h文件


@interface Man_list_Model : NSObject

@property (nonatomic,copy)NSString * area;
@property (nonatomic,copy)NSString * jobs;
@property (nonatomic,copy)NSString * mobile;
@property (nonatomic,copy)NSString * nickname;
@property (nonatomic,copy)NSString * thumb;

@end

// .m文件

#import "Man_list_Model.h"

@implementation Man_list_Model

@end

2.在viewControll.m请求到数据的位置,添加如下代码

for (Man_list_Model * manList in _complexModel.man_list) {
            NSLog(@"----\n%@\n%@\n%@\n%@\n%@",manList.area,manList.jobs,manList.mobile,manList.nickname,manList.thumb);
        }

打印结果如下

宁  夏
明星模特
18519668491
我是
https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-07-18/150035766163.jpeg
2018-01-02 13:14:31.030 WeichartPay[10249:556133] 
山西省
自由职业
15364600910
小四
https://huayiquan.oss-cn-beijing.aliyuncs.com/Uploads/2017-07-26/15010716051.jpeg
2018-01-02 13:14:31.031 WeichartPay[10249:556133]

这里数组manlist数组里的数据就解析出来了,接下来解析woman_list数组里的数据(woman_list数组里的数据和manlist里数据类型是相同的所以不用再添加model类放woman_list数据)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,651评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,074评论 25 707
  • Why Django? official website link:https://www.djangoproje...
    whenitsallover阅读 250评论 0 0
  • 艺术很重要的一点是去感受,并非是理解。 突然想到之前看到艺术的东西,看不懂,就像弄明白。于是就问画家。好有趣,好傻...
    清水芦苇阅读 237评论 0 0
  • 在这个世界上,有人好高骛远,心比天高,命比纸薄,如……;有人争强好胜,永不服输,如……;有人德高望重,令人敬仰,如...
    彪悍另一只猫阅读 350评论 0 1