请求SQL数据是存在<null>,的解决方法


删除字典中的null

我们在处理服务器传过来的数据过程中,如果数据中出现null,我们是没法进行本地持久化处理的。在使用NSUserDaults保存本地时,如果其中一个字段的value为NULL值,就会出现崩溃。

null产生原因

null是后台在处理数据的时候,如果没有设置默认的value值,数据库默认填充的值,就为null值,从服务器传过来,我们json or xml解析成null值。

解决办法

  • 服务器端做好处理,让所有的字段对应都有默认的不为空的值
  • 本地做删除null处理

本地做删除null处理

如果是数据库做处理的话,可以在数据库中,将未设置的value填充为" "即可。

如果是本地处理的话,我个人是通过添加类别来达到效果的。

代码如下:

NSDictionary+MyDictionary.h***********************************
#import <Foundation/Foundation.h>

@interface NSDictionary (MyDictionary)
-(NSDictionary *)deleteAllNullValue;
@end

//*********************************************************************
NSDictionary+MyDictionary.m
**********************************************
//  NSDictionary+MyDictionary.m

#import "NSDictionary+MyDictionary.h"

@implementation NSDictionary (MyDictionary)
- (NSDictionary *)deleteAllNullValue{
    NSMutableDictionary *mutableDic = [[NSMutableDictionary alloc] init];
    for (NSString *keyStr in self.allKeys) {
        if ([[self objectForKey:keyStr] isEqual:[NSNull null]]) {
            [mutableDic setObject:@"" forKey:keyStr];
        }
        else{
            [mutableDic setObject:[self objectForKey:keyStr] forKey:keyStr];
        }
    }
    return mutableDic;
}
@end

学习:http://www.ithao123.cn/content-10842398.html
时间: 2024-08-24 12:20:28

请求SQL数据是存在<null>,的解决方法的相关文章

SQL Server2005索引碎片分析和解决方法

SQL Server2005索引碎片分析和解决方法 本文作者(郑贤娴),请您在阅读本文时尊重作者版权. 摘要: SQL Server,为了反应数据的更新,需要维护表上的索引,因而这些索引会形成碎片.根据工作量的特征,这些碎片会影响对应的工作性能.此文帮助决定是否需要整理碎片以改善性能的信息.SQL Serve提供一些命令来实现索引的碎片整理.这里比较其中两个命令:DBCC DBREINDEX 和 DBCC INDEXDEFRAG. 关键词: SQL Server;索引碎片;数据库优化毫无疑问,给

小程序云开发调用HTTP请求中got第三方库使用失败解决方法

小程序云开发调用HTTP请求中got第三方库使用失败解决方法 错误代码 {"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"The \"original\" argument must be of type function"} 替换方案 // 云函数入口文件 const cloud = req

提交数据的中文乱码的解决方法

使用GET方式提交数据的中文乱码的解决方法: 使用URLEncoder.encode(name,"UTF-8")进行url编码:      String path = "http://192.168.22.136:8080/web/servlet/LoginServlet?username="+URLEncoder.encode(name,"UTF-8")+"&password="+URLEncoder.encode(

Win8/8.1下驱动安装“数据无效”错误的有效解决方法

Windows8.1 安装完vmware 后并没有安装 vmnet1,vmnet8 这两个虚拟网卡,纠结了半天,原来是两个服务没打开. 如果你使用的是Windows8或者8.1,并且精简过系统,那么在安装驱动程序的过程中,你可能会遇到"数据无效"的错误.笔者确信所拥有的驱动程序是可以安装在Win8/Win8.1的系统中的,但是查阅了网络上关于所有安装驱动程序过程中出现"数据无效"的解决方法,都尝试无果,后来终于摸索出行之有效的解决方法--开启服务,屡试不爽. 原来,

【jquery】ajax 请求成功后新开窗口被拦截解决方法

问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所

【原】新装SQL Server 2014 遇到问题的解决方法。

[尝试读取或写入受保护的内存.这通常指示其他内存已损坏. (System.Data)] 管理员身份运行 cmd -> 输入 netsh winsock reset 提问者评价 曾经让我重装系统的bug,一句话就就解决了,谢谢你~ 评论 | 2 [原]新装SQL Server 2014 遇到问题的解决方法.

使用Ef查询出现的问题The cast to value type &#39;System.Boolean&#39; failed because the materialized value is null.的解决方法

把值类型的系统.布尔的失败是因为物化值是null.结果类型的泛型参数或查询必须使用可空类型. 解决方法: 请确保你查询中的字段值不为空或者做为空判断 使用Ef查询出现的问题The cast to value type 'System.Boolean' failed because the materialized value is null.的解决方法

【转】drupal7请求异常,执行时间过长的解决方法

drupal7请求错误,执行时间过长的解决办法 根据你的系统或网络设置Drupal不能读取网页,造成功能缺失.可能是web服务器配置或PHP设置引起的,可用更新.获取更新源.使用OpenID登 录或使用其他网络服务的下载信息都需要解决这个问题.若确定Drupal可正常读取网页但仍然出现此消息,你可以在你的 settings.php 文件底部添加 $conf['drupal_http_request_fails'] = FALSE;. Your Status report page located

php ajax提交post请求出现数组被截断情况的解决方法

一.场景 今天做保存专题商品列表的时候发现,前端明明有2300多条数据,但是实际服务端接受存入数据库才166条 二.解决过程 经过调试发现前端页面提交post请求时数据量是正确的,但到服务端只能接受到166条. 一开始以为是post请求长度超过限制,不过看了下请求内容才200多K,而post请求默认支持8M以内的数据传输. 于是怀疑可能是php内部配置导致的,后来百度了下果不其然发现max_input_vars这个配置项,该配置项是在php 5.3.9版本之后才加入的,目的是为了防止hash冲突