网络请求中空类型字符串处理
将网络请求返回的空数据所有NSNull 类型转化成 @""
给NSDictionary 扩展一个分类
NSDictionary+Nsnull.h文件
/*
*把服务器返回的<null> 替换为“”
*json表示获取到的带有NULL对象的json数据
*NSDictionary *newDict = [NSDictionary changeType:json];
*/
+(id)changeType:(id)myObj;
NSDictionary+Nsnull.m文件
//将NSDictionary中的Null类型的项目转化成@""
+(NSDictionary *)nullDic:(NSDictionary *)myDic{
NSArray *keyArr = [myDic allKeys];
NSMutableDictionary *resDic = [[NSMutableDictionary alloc]init];
for (int i = 0; i < keyArr.count; i ++) {
id obj = [myDic objectForKey:keyArr[i]];
obj = [self changeType:obj];
[resDic setObject:obj forKey:keyArr[i]];
}
return resDic;
}
//将NSArray中的Null类型的项目转化成@""
+(NSArray *)nullArr:(NSArray *)myArr{
NSMutableArray *resArr = [[NSMutableArray alloc] init];
for (int i = 0; i < myArr.count; i ++) {
id obj = myArr[i];
obj = [self changeType:obj];
[resArr addObject:obj];
}
return resArr;
}
//将NSString类型的原路返回
+(NSString *)stringToString:(NSString *)string{
return string;
}
//将Null类型的项目转化成@""
+(NSString *)nullToString{
return @"";
}
//主要方法
//类型识别:将所有的NSNull类型转化成@""
+(id)changeType:(id)myObj{
if ([myObj isKindOfClass:[NSDictionary class]]){
return [self nullDic:myObj];
}else if([myObj isKindOfClass:[NSArray class]]) {
return [self nullArr:myObj];
}else if([myObj isKindOfClass:[NSString class]]){
return [self stringToString:myObj];
}else if([myObj isKindOfClass:[NSNull class]]){
return [self nullToString];
}else{
return myObj;
}
}
网友评论