1.modelCustomPropertyMapper
解决json文件中关键字和定义的类的属性不一致的问题。
例如 在类型定义了属性
@property (nonatomic, assign) NSInteger errnoTest;
在json中对应的内容是
"error": "2"
使用方法
+ (NSDictionary *) modelCustomPropertyMapper {
return @{@"errnoTest" : @"errno"
};
}
2.objectClassInArray
解决类中属性是Array类型中元素类型和json中数组中元素对应关系
@property (nonatomic, strong) NSArray<List *> *list;
在json中的对应内容是
"listtest": [
{
"count": "2",
"createdAt": "2015-07-31 15:55:07",
"expiredAt": "2015-08-01 15:55:06",
"flag": 2,
"id": "14381",
"leftNum": 2,
"sendNum": "0",
"usedNum": "0"
},
{
"count": "4",
"createdAt": "2015-07-23 11:54:02",
"expiredAt": "2015-07-24 11:54:01",
"flag": 2,
"id": "13791",
"leftNum": 4,
"sendNum": "0",
"usedNum": "0"
},
]
使用事例
+ (NSDictionary *)objectClassInArray{
return @{@"list" : [List class]};
}
3.modelPropertyWhitelist和modelPropertyBlacklist
modelPropertyWhitelist是对这些关键字外的都不解析
modelPropertyBlacklist是对这些关键字不做解析
两者都用的话,是两者并集
+ (NSArray *)modelPropertyWhitelist {
return @[@"name"];
}
+ (NSArray *)modelPropertyBlacklist {
return @[@"uid",@"name"];
}
本文介绍如何在Objective-C中解决JSON字段与模型属性不匹配的问题,包括使用modelCustomPropertyMapper处理关键字不一致,objectClassInArray解决数组元素类型对应,以及modelPropertyWhitelist和modelPropertyBlacklist控制解析范围。
2万+

被折叠的 条评论
为什么被折叠?



