美文网首页
解决json串中的NSNull类型

解决json串中的NSNull类型

作者: 9o後侽孓 | 来源:发表于2017-06-21 15:54 被阅读55次

    后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@""空字符串。下面是转化方法:

    1 自定义的几个方法:放在NSDictionary类别中

    #pragma mark -私有方法

    //将NSDictionary中的Null类型的项目转化成@""

    .h文件


    +(id)changeType:(id)myObj;

    .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;

    }

    }

    相关文章

      网友评论

          本文标题:解决json串中的NSNull类型

          本文链接:https://www.haomeiwen.com/subject/yanlrttx.html