IOS 返回JSON数据中存在NULL的解决办法
2016-03-17 16:36
525 查看
有些后台写的不好,返回数据的字段偶尔有NULL类型存在,如果不直接赋值给其他对象就会造成崩溃。解决办法的主要思路就是将其中的NULL对象转换为@”“空字符串。以下是封装好的方法
创建一个字典的分类
.h文件
.m文件
需要转换的时候调用以下方法就OK了,不管有多少个层级,全部转换
创建一个字典的分类
.h文件
#import <Foundation/Foundation.h> @interface NSDictionary (SetNilStr) +(id)changeType:(id)myObj; @end
.m文件
#import "NSDictionary+SetNilStr.h" @implementation NSDictionary (SetNilStr) //将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; } } @end
需要转换的时候调用以下方法就OK了,不管有多少个层级,全部转换
//json表示获取到的带有NULL对象的json数据 NSDictionary *newDict = [NSDictionary changeType:json];
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- XML 与 JSON 优劣对比
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- VBA将excel数据表生成JSON文件
- newtonsoft.json解析天气数据出错解决方法
- mysql 中存在null和空时创建唯一索引的方法
- C#中string.Empty和null的区别详解
- vbs 解析json jsonp的方法
- 基于不要返回null之EmptyFactory的应用详解
- Extjs4如何处理后台json数据中日期和时间
- C#实现将类的内容写成JSON格式字符串的方法
- JQuery ajax返回JSON时的处理方式 (三种方式)
- 详解MySQL中的NULL值
- asp提示无效使用 Null: Replace