iOS解决json串中的NSNull类型
来源:互联网 发布:tao bao淘宝网 编辑:程序博客网 时间:2024/06/06 20:43
我的博客原文地址
后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@”“空字符串。下面是转化方法:
1 自定义的几个方法:放在NSDictionary类别中
#pragma mark - 私有方法//将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;}//将NSDictionary中的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 @"";}#pragma mark - 公有方法//类型识别:将所有的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; }}
2 使用方法
(1)原始的json串:后端返回的json串里面包含类型NSString,NSArray,NSDictionary,NSNull类型。
{ "status": 1, "service_name": null, "service_id": null, "img_url": "http://api.jgfw.me/assets/uploads/files/", "price": null, "num": 3, "service_info": { "service_type": null, "service_time": null, "service_detail": null, "customer_name": null, "customer_phone": null, "customer_address": "", "new_jishi": "", "old_jishi": null, "lat": null, "lon": null }, "order_info": { "order_no": "E15031267469289848688", "pay_time": null, "order_time": null, "price": 0, "order_state": null }}
(2)用SBJson库:json串转换成字典
NSDictionary *jsonDic = [retString JSONValue];
(3)用自定义方法转换后的结果:将字典中所有的NSNull类型转换成@”“
NSDictionary *dict = [NSDictionary changeType:jsonDic];// 打印的结果{ "img_url" = "http://api.jgfw.me/assets/uploads/files/"; num = 3; "order_info" = { "order_no" = E15031267469289848688; "order_state" = ""; "order_time" = ""; "pay_time" = ""; price = 0; }; price = ""; "service_id" = ""; "service_info" = { "customer_address" = ""; "customer_name" = ""; "customer_phone" = ""; lat = ""; lon = ""; "new_jishi" = ""; "old_jishi" = ""; "service_detail" = ""; "service_time" = ""; "service_type" = ""; }; "service_name" = ""; status = 1;}
0 0
- iOS解决json串中的NSNull类型
- iOS解决json串中的NSNull类型
- iOS NSNull
- iOS 用Runtime解决服务器返回NSNull问题
- iOS JSON返回的数据有NSNull导致程序崩溃及ios nil、NULL和NSNull的区别
- iOS-Objective-C中的nil、Nil、NULL、NSNull、NSNotFound总结
- 解决NSInvalidArgumentException', reason: '-[NSNull]
- iOS nil NULL NSNull
- iOS-BugList:NSNull equal
- iOS 【nil,NULL,NSNULL】
- OC中的NSNull
- iOS中的JSON解析
- iOS中的json数据格式
- iOS中的JSON解析
- Google gson解决不知道json中的内容是什么类型的处理
- iOS中的崩溃类型
- iOS对NSNull的判断
- iOS开发中解析JSON中的boolean类型的数据遇到的问题
- 模仿腾讯QQ的web登陆面板
- Xcode常用插件
- Ultraedit中编辑go语言源代码
- NLTK学习笔记
- 使用Go语言开发iOS应用(Swift版)
- iOS解决json串中的NSNull类型
- Java中Calendar.DAY_OF_WEEK需要减一的原因 month +1
- iOS解析json中null终极解决方案
- Swift 注释技巧
- 无障碍集成微信第三方登录,解决WXEntryActivity不回调onResp
- Objective-C 注释技巧
- 2017年网易有道校园招聘内推笔试
- ftp上传问题解决过程以及思考-pasv以及port两种模式
- Xcode 定制系统注释模板