MJExtension 的实用方法

本人最常用的MJExtension字典转模型的方法,开发中也经常用到,在复杂的数据结构里面,个人感觉比kvc简单方便

> + (NSMutableArray *)objectArrayWithKeyValuesArray:(NSArray *)keyValuesArray 字典数组转换成模型数组

> + (instancetype)objectWithKeyValues:(id)keyValues字典转化为模型

废话就不再说了,举个我项目中数据例子吧,教你使用' MJExtension'方法字典转模型方法

1.先看一下这个数据:

MJExtension 的实用方法_第1张图片

2.当你请求到数据,那肯定要见模型类了:


MJExtension 的实用方法_第2张图片

关于 for循环外层model的事情就不用你操心啦,MJ都已帮你完成。

当然 这个MyMessageModel 是外层的model,还有个里面一层的model:


MJExtension 的实用方法_第3张图片

3.现在,我们model 都已经写好了,哪下面就去请求数据的地方看看吧


MJExtension 的实用方法_第4张图片

这里解析数据的我也已经框起来了,是不是特别简单,也是上面说的最常用的2个方法,字典数据转换成了模型数组.

4.现在看似已经完成了整个的解析,其实不然,重要的是里层的model里面的数据要怎么取的到呢?

4.1. MJExtension 提供了一个 load方法,将你的数据的key和model关联起来就可以了看似非常简单,本人也是经历了一番周折才看到的。看图:

MJExtension 的实用方法_第5张图片

这个 可不是随便乱写的key value ,看第一个 postman 解析的数据可以看到, model里面 有个子model对应的key 正好就是 content,所以

就return @{@"content":@"MyMessageContentModel"};

//贴出方法, 解析子Model数据

+(void)load{

[self mj_setupObjectClassInArray:^NSDictionary *{

return @{@"content":@"MyMessageContentModel"};

}];

}

5. 遍历子model里的内容,拼接在一起

-(void)setContent:(NSArray *)content{

_content = content;

NSMutableArray * arr = [NSMutableArray arrayWithCapacity:0];

for (MyMessageContentModel * model in content) {

NSString * tempStr = model.content;

[arr addObject:tempStr];

}

self.pinchuan = [arr componentsJoinedByString:@""];

}

这个主要是本人需求,需要遍历出 子model里面的字段,然后拼接。

至此,大部分的数据解析操作都已完成,后续的数据赋值的就不多说了。

你可能感兴趣的:(MJExtension 的实用方法)