请求接口获取到的数据其中出现null值,处理的时候导致了程序crash,解决方案如下:...
第一种方法是使用分类给字典添加一个类方法,将字典中的null值全部替换为空字符串,代码如下:
.h文件代码:
@interface NSDictionary (DeleteNull)
+ (id)changeType:(id)myObj;
@end
.m文件代码:
@implementation NSDictionary (DeleteNull)
//将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 @"";
}
#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;
}
}
使用方法:
[model setValuesForKeysWithDictionary:[NSDictionary changeType:dict]];
第二种方法是利用AFNetworking的自动解析,去除掉值为null的键值对,我挺推崇这种方案的,但还要看个人喜好,装逼一点的就用拓展(个人不推荐)代码如下:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
AFJSONResponseSerializer *response = [AFJSONResponseSerializer serializer];
response.removesKeysWithNullValues = YES;
manager.responseSerializer = response;
manager.requestSerializer = [AFJSONRequestSerializer serializer];
转载于:https://www.cnblogs.com/IceBlack-Tea-developer/p/5665685.html
请求接口获取到的数据其中出现null值,处理的时候导致了程序crash,解决方案如下:...相关推荐
- axios 请求接口获取文件流数据导出数据到excel,解决乱码
axios.get("URL",{params:{data1:data1,data2:data2},headers: { 'Content-Type': 'application/ ...
- 股票level2数据接口获取逐笔成交数据的过程
描述:通过股票level2数据接口获取逐笔成交数据的过程 地点:https://gitee.com/l2gogogo 获取过程: /// <summary> /// 获取逐笔成交数据 // ...
- V3.0element中table表格树形结构与懒加载通过接口获取展开行数据,并实现自动展开某行以及展开行数据删除,编辑,新增,展开行某些列不显示等功能
1.获取列表后自动展开第一行,以及列表序号的显示 需要展开哪行,就赋值 expandsId 某行id 值就行了 2.展开某行时通过接口获取子行数据,一般需求是通过父行的id,来获取他的子行数据--lo ...
- js 请求接口获取不到登录cookie xhrFields 配置
请求接口获取不到登录cookie, 首先看看是否加了xhrFields没有 如果加了,在看看他们加的位置对不对. 小心队友坑你就是这 xhrFields: {withCredentials: true ...
- django通过ajax请求接口返回多条数据,并动态生成表格,请求表单后将表格数据并入库
一.最近在做接口相关的开发,需求是这样的,通过一个接口所需要传递的参数,调用接口后,处理接口响应的参数,返回多条数据,并动态生成表格,请求表单后将表格的数据入库,下面是我改过的代码,跟实际代码有些出入 ...
- 如何调用api接口获取其中的数据
part1.API接口可以运用到的场景,主要包括以下几个方面: 1. 应用程序集成:API可以使不同的应用程序相互之间进行集成,比如将某个应用程序的数据传递给另一个应用程序,或者调用另一个应用程序的功 ...
- 通过API接口获取下来的数据需要怎样才能应用
获取到API接口下来的数据之后,为了能够在自己的项目或应用中进行应用开发,需要进行一些必要的数据处理和解析,主要包括以下几个方面: 数据格式解析:数据获取下来通常是以JSON或XML等格式进行返回的, ...
- java接口获取天气预报json数据
https://blog.csdn.net/weixin_38959210/article/details/83515783 首先进上面这个链接的文档里面,获取到JAVA调用HTTP接口的方法. 我们 ...
- 使用 axios 发送请求到servlet ,后端数据接收为null
axios请求头中的Content-Type 服务器在收到http请求的时候,怎么去解析参数,是请求头header中的Content-Type规定的,也就是内容类型.不同形式的参数设置不同类型的请求头 ...
最新文章
- 【项目管理】Project使用
- concat与concat_ws区别
- matlab 小括号
- python加入中小学课程_【python即将进入中学课堂,编程从小抓起,竟然在这几点上应验了】- 环球网校...
- 【转】写给想学习自动化测试的新人
- 事件处理程序的执行上下文
- mysql重建索引_mysql创建、删除、重建、删除索引的操作命令的一些总结
- MySQL索引(1)
- 【论文阅读】Network In Network
- 【渝粤题库】国家开放大学2021春2779植物病虫害防治基础题目
- Cadence 17.2 Pad Editor入门指南(2)
- 系统集成项目管理工程师(软考中级)—— 第二十二章 安全管理 笔记分享
- 怎么知道服务器是否正版,盗版太坑爹!五招识别Win7旗舰版正版
- Android 使用 百度地图 测量 多边形面积
- 由计算机病毒引起的问题属于,多数情况下由计算机病毒程序引起的问题属于()故障。A.硬件B.软件C.操作D.电源...
- 函数指针的定义及使用
- 可能是史上最详细攻略的广州人才引进入户
- 家长心态建设;一切都没想象的那么糟
- EU.org免费域名申请教程
- Gom传奇引擎的微端连不上的原因是什么?附:微端配置教程
热门文章
- 存储器的保护(二)——《x86汇编语言:从实模式到保护模式》读书笔记19
- 「 每日一练,快乐水题 」682. 棒球比赛
- 都2021年了,不会还有人连深度学习还不了解吧(六)-- Padding篇
- UNIX再学习 -- 信号处理
- php smarty 限制显示字数,smarty现在显示字数的各种写法
- Android PC投屏简单尝试(录屏直播)3—软解章(ImageReader+FFMpeg with X264)
- Android adb无线调试脚本
- 基于glibc的程序在android上的移植
- Pocket Hacking: NetHunter实战指南
- java 浮点数精度_Java中浮点数精度问题