服务器返回的json数据中含有null的处理方法

个人博客:http://guohuaden.com/2017/03/06/json-dataNull/
因为有遇到过类似情况,所以就想到了一些解决方法,并且实践了一下,这里简单的做个记录。

注:有看到不少的评价,有说后台责任,也有说怪移动端没有做容错处理。我这里就事论事的说下,移动端从服务器得到的数据中确实是不应该包含<code>null</code>的,因为这本身就是不合理的。(当然,我的就事论事是站在iOS立场上说的,这个无可厚非)。

下面👇说一下想到的几种方法:

一、 对于所有使用到的json中的对象做判断(当然这是最笨的方法)

NSString *msg ;
if ([str isKindOfClass: [NSNull class]]){
    NSLog(@"str 为空!");
}
//或者使用[str isEqual:[NSNull null]]

为什么首先说这种方法呢,大抵是因为这个方法的工作量比较大吧。但有时候你是完全不能避免这种情况的,尤其是在老旧的项目中,当你看到项目中所有的解析都是<code>KVO</code>模式时,你就知道一个个去判断是多么让人纠结的事情了。


二、使用<code>JSONModel</code>等第三方json解析库

<code>JSONModel</code>有专门针对对象为<code>null</code>的处理,使其返回<code>"<null>"</code>。iOS移动端赋值为<code>nil</code>。


三、有一个专门针对数据为<code>null</code>的类扩展,<code>NullSafe</code>

这个库是专门处理对象为null的。只有一个<code>.m</code>文件。使用也简单,因为你只需要添加到项目中就可以了,不再需要引入头文件等其他任意操作。

这里放一个我测试是使用的简单demo

github:data_nullDemo

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,188评论 19赞 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 180,489评论 25赞 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,788评论 4赞 61
  • 最近情绪起起伏伏的,对自己说好了要保持平静,不过做到好难呀!然后我就在对别人说完语气不好后开始后悔为什么要这样,比...
    小小红树林阅读 361评论 0赞 0
  • 标题: 1、又找到一个亲子的好去处,而且免费哦! 2、一定要这样抱紧孩子,不想再看到悲伤 3、月薪5000还是15...
    wsh200432阅读 177评论 0赞 0

友情链接更多精彩内容