转自:http://www.zhihu.com/question/35588974/answer/63656074?f3fb8ead20=1266b11ef5aaf6cc633a1fa9692389f8
MJ字典转模型框架 遇到的问题?
一直在用MJ大神的字典转模型框架,能实现 简单的字典 -> 模型(key替换,比如ID和id); 但是= = 复杂的字典数组 -> 模型数组 不能享受这么好用的功能。
例如框架中的实例程序
/**
* 字典数组 -> 模型数组
*/
void keyValuesArray2objectArray()
{
// 1.定义一个字典数组
NSArray *dictArray = @[
@{
@"id" : @"20",
@"name" : @"Jack",
@"icon" : @"lufy.png",
},
@{
@"id" : @"30",
@"name" : @"Rose",
@"icon" : @"nami.png", }
];
// 2.将字典数组转为User模型数组
NSArray *userArray = [User objectArrayWithKeyValuesArray:dictArray];
// 3.打印userArray数组中的User模型属性
for (User *user in userArray) {
NSLog(@"name=%@, icon=%@ ID=%@", user.name, user.icon,user.ID);
打印出来的数据是这样的~ id并不能替换掉。
2015-09-13 15:53:39.046 MJExtensionExample[4592:116303] [******************字典数组 -> 模型数组******************开始]
2015-09-13 15:53:39.048 MJExtensionExample[4592:116303] name=Jack, icon=lufy.png ID=(null)
2015-09-13 15:53:39.048 MJExtensionExample[4592:116303] name=Rose, icon=nami.png ID=(null)
2015-09-13 15:53:39.048 MJExtensionExample[4592:116303] [******************字典数组 -> 模型数组******************结尾]
如果实在要用id属性 有什么好办法么????
1 条评论 分享
1
赞同反对,不会显示你的姓名
裴裴
1 人赞同
使用replacedKeyFromPropertyName
使用方法:
1.在模型类.m文件引入"MJExtension.h"
2.实现方法
+ (NSDictionary *)replacedKeyFromPropertyName
{
return @{@“非关键字的属性名” : @“数组的key”};
}
我也是刚刚下午才研究,但你可以试一试,之前听过MJ视频,你说的不是个事!!!
下面是我下午搜的,分享给你,有空我研究研究再交流,时间不早,早点睡啦,嘿嘿!iOS Json解析框架之MJExtension使用详解(转)
早上到公司我测试了一下,你在User.m中
#import "User.h"
#import "MJExtension.h"
@implementation User
+(NSDictionary *)replacedKeyFromPropertyName{
return @{@"ID":@"id"};
}
@end
打印结果是这样:
2015-09-15 09:43:27.721 ZhiHuMJExtensionText[1421:14986] name=Jack, icon=lufy.png ID=20
2015-09-15 09:43:27.722 ZhiHuMJExtensionText[1421:14986] name=Rose, icon=nami.png ID=30