精华内容
下载资源
问答
  • 在接口数据返回,如果我们直接将数据库查询到字段返回,则可能存在null值,为了前端和APP处理判断,我们需要把null值转换为空字符串,如果需要转成其他也可以简单修改一下代码实现。 以下是示例数据和处理...

    在接口的数据返回中,如果我们直接将数据库查询到的字段返回,则可能存在null值,为了前端和APP处理判断,我们需要把null值转换为空字符串,如果需要转成其他也可以简单修改一下代码实现。

    以下是示例数据和处理代码

    处理代码

    /**
     * 通过递归方式把数组所有值包含null转换为空字符串。
     * @param $result
     * @return array
     */
    function null_to_string($result){
        if(!empty($result) && is_array($result)){
            foreach ($result as $key=>$value){
                if(is_null($value)){
                    $result[$key] = '';
                }
                //如果数组则递归执行
                if(is_array($value)){
                    $result[$key] = null_to_string($value);
                }
            }
        }
        return $result;
    }
    

    需要处理的数组

    $result = [
                'code'=>'1',
                'res'=>'1',
                'msg'=>null,
                'data'=>[
                    'test'=>'1',
                    'name'=>null,
                    'list'=>[
                        'order'=>[
                            'lis'=>1,
                            'lis1'=>null,
                            'lis2'=>null,
                            'lis3'=>null,
                            'lis4'=>null,
                            'lis5'=>[
                                'lis'=>1,
                                'lis1'=>null,
                                'lis2'=>null,
                                'lis3'=>null,
                                'lis4'=>null,
                            ],
                        ],
                        'goods'=>null,
                    ],
                ],
            ];
    

    处理后的返回结果

    {
        "data": {
            "code": "1",
            "res": "1",
            "msg": "",
            "data": {
                "test": "1",
                "name": "",
                "list": {
                    "order": {
                        "lis": 1,
                        "lis1": "",
                        "lis2": "",
                        "lis3": "",
                        "lis4": "",
                        "lis5": {
                            "lis": 1,
                            "lis1": "",
                            "lis2": "",
                            "lis3": "",
                            "lis4": ""
                        }
                    },
                    "goods": ""
                }
            }
        }
    }
    
    展开全文
  • 数据库null值的处理

    2017-09-30 16:15:00
    Oracle排序中NULL值处理五种常用方法 1、缺省处理 Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前 2、使用nvl函数 nvl函数可以将输入参数为空转换为一...

    Oracle排序中NULL值处理的五种常用方法

    1、缺省处理
     
    Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前
    2、使用nvl函数
     
    nvl函数可以将输入参数为空时转换为一特定值,如
    nvl(employee_name,’张三’)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
    通过这个函数可以定制null的排序位置。
    3、使用decode函数
     
    decode函数比nvl函数更强大,同样它也可以将输入参数为空时转换为一特定值,如
    decode(employee_name,null,’张三’, employee_name)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
    通过这个函数可以定制null的排序位置。
    4、使用case 语法
     
    Case语法是Oracle 9i后开始支持的,是一个比较灵活的语法,同样在排序中也可以应用
    如:
    select *
     from employee
     order by  (case employee_name
                when null then
                 '张三'
                else
                 employee_name
              end)
    表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name
    通过case语法同样可以定制null的排序位置。
     
    5、使用nulls first 或者nulls last 语法
     
    Nulls first和nulls last是Oracle Order by支持的语法
    如果Order by 中指定了表达式Nulls first则表示null值的记录将排在最前(不管是asc 还是 desc)
    如果Order by 中指定了表达式Nulls last则表示null值的记录将排在最后 (不管是asc 还是 desc)
    使用语法如下:
    --将nulls始终放在最前
    select * from zl_cbqc order by cb_ld nulls first
     
    --将nulls始终放在最后
    select * from zl_cbqc order by cb_ld desc nulls last

    MySQL中的isnull、ifnull和nullif函数用法

    isnull(expr)

    如expr为null,那么isnull()的返回值为1,否则返回值为0。

    mysql>select isnull(1+1);

    ->0

    mysql>select isnull(1/0);

    ->1

    使用=的null值对比通常是错误的。

    isnull()函数同is null比较操作符具有一些相同的特性。请参见有关is null 的说明。

    ifnull(expr1,expr2)

    假如expr1不为NULL,则IFNULL()的返回值为expr1; 否则其返回值为expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

    mysql>SELECT IFNULL(1,0);

    ->1

    mysql>SELECT IFNULL(NULL,10);

    ->10

    mysql>SELECT IFNULL(1/0,10);

    ->10

    mysql>SELECT IFNULL(1/0,'yes');

    ->'yes'

    ifnull(expr1,expr2)的默认结果值为两个表达式中更加“通用”的一个,顺序为STRING、REAL或INTEGER。假设一个基于表达式的表的情况,或MySQL必须在内存储器中储存一个临时表中IFNULL()的返回值:

    CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;

    在这个例子中,测试列的类型为 CHAR(4)。

    nullif(expr1,expr2)

    如果expr1=expr2成立,那么返回值为NULL,否则返回值为expr1。这和

    CASE WHEN expr1=expr2 THEN NULL

    ELSE

    expr1

    END相同。

    mysql>SELECT NULLIF(1,1);

    ->NULL

    mysql>SELECT NULLIF(1,2);

    ->1

    如果参数不相等,则MySQL两次求得的值为expr1 。

    转载于:https://www.cnblogs.com/look-back-upon/p/7615399.html

    展开全文
  • 本文转自Clement-Xucsdn博客。 ...在SpringMVC,可以通过在中配置,把null值统一转换为空字符串,解决这个问题。下面以JSon交互方式为例说明如何实现: 第一步:创建一个ObjectMapper

    本文转自Clement-Xu的csdn博客。


    在Java Web中,如果数据库中的值为null,而不做任何转换的话,传到前端页面会显示为null,影响美观。比如,智联招聘网站上的这个样子:


    在SpringMVC中,可以通过在<mvc:annotation-driven>中配置<mvc:message-converters>,把null值统一转换为空字符串,解决这个问题。下面以JSon交互的方式为例说明如何实现:


    第一步:创建一个ObjectMapper

    [java] view plain copy
    1. package com.xjj.anes.mvc.converter;  
    2.   
    3. import java.io.IOException;  
    4.   
    5. import com.fasterxml.jackson.core.JsonGenerator;  
    6. import com.fasterxml.jackson.core.JsonProcessingException;  
    7. import com.fasterxml.jackson.databind.JsonSerializer;  
    8. import com.fasterxml.jackson.databind.ObjectMapper;  
    9. import com.fasterxml.jackson.databind.SerializerProvider;  
    10.   
    11. /** 
    12.  * @description: 转换null对象为空字符串 
    13.  */  
    14. public class JsonObjectMapper extends ObjectMapper {  
    15.     private static final long serialVersionUID = 1L;  
    16.   
    17.     public JsonObjectMapper() {  
    18.         super();  
    19.         // 空值处理为空串  
    20.         this.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {  
    21.             @Override  
    22.             public void serialize(Object value, JsonGenerator jg, SerializerProvider sp) throws IOException, JsonProcessingException {  
    23.                 jg.writeString("");  
    24.             }  
    25.         });  
    26.     }  
    27. }  

    第二步:在SpringMVC配置文件中,把新建的ObjectMapper注入给MappingJackson2HttpMessageConverter

    [html] view plain copy
    1. <!-- 注册RequestMappingHandlerMapping 和RequestMappingHandlerAdapter 两个bean。-->  
    2. <mvc:annotation-driven>  
    3.     <mvc:message-converters>  
    4.         <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">  
    5.             <property name="objectMapper">  
    6.                 <bean class="com.xjj.anes.mvc.converter.JsonObjectMapper"></bean>  
    7.             </property>  
    8.         </bean>  
    9.     </mvc:message-converters>  
    10. </mvc:annotation-driven>  

    重新启动服务器后,即可看到效果。

    转换前:


    转换后:



    展开全文
  • 在Java Web中,如果数据库中的值为null,而不做任何转换话,传到前端页面会显示为null,影响美观。比如,智联招聘网站上这个...,把null值统一转换为空字符串,解决这个问题。下面以JSon交互方式为例说明如何...

    Java Web中,如果数据库中的值为null,而不做任何转换的话,传到前端页面会显示为null,影响美观。比如,智联招聘网站上的这个样子:


    在SpringMVC中,可以通过在<mvc:annotation-driven>中配置<mvc:message-converters>,把null值统一转换为空字符串,解决这个问题。下面以JSon交互的方式为例说明如何实现:


    第一步:创建一个ObjectMapper

    [java] view plain copy
    1. package com.xjj.anes.mvc.converter;  
    2.   
    3. import java.io.IOException;  
    4.   
    5. import com.fasterxml.jackson.core.JsonGenerator;  
    6. import com.fasterxml.jackson.core.JsonProcessingException;  
    7. import com.fasterxml.jackson.databind.JsonSerializer;  
    8. import com.fasterxml.jackson.databind.ObjectMapper;  
    9. import com.fasterxml.jackson.databind.SerializerProvider;  
    10.   
    11. /** 
    12.  * @description: 转换null对象为空字符串 
    13.  */  
    14. public class JsonObjectMapper extends ObjectMapper {  
    15.     private static final long serialVersionUID = 1L;  
    16.   
    17.     public JsonObjectMapper() {  
    18.         super();  
    19.         // 空值处理为空串  
    20.         this.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {  
    21.             @Override  
    22.             public void serialize(Object value, JsonGenerator jg, SerializerProvider sp) throws IOException, JsonProcessingException {  
    23.                 jg.writeString("");  
    24.             }  
    25.         });  
    26.     }  
    27. }  

    第二步:在SpringMVC配置文件中,把新建的ObjectMapper注入给MappingJackson2HttpMessageConverter

    [html] view plain copy
    1. <!-- 注册RequestMappingHandlerMapping 和RequestMappingHandlerAdapter 两个bean。-->  
    2. <mvc:annotation-driven>  
    3.     <mvc:message-converters>  
    4.         <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">  
    5.             <property name="objectMapper">  
    6.                 <bean class="com.xjj.anes.mvc.converter.JsonObjectMapper"></bean>  
    7.             </property>  
    8.         </bean>  
    9.     </mvc:message-converters>  
    10. </mvc:annotation-driven>  

    重新启动服务器后,即可看到效果。

    转换前:


    转换后:

    原博客:https://blog.csdn.net/clementad/article/details/42169049#
    展开全文
  • 1、在Java Web中,如果数据库中的值为null,而不做任何转换话,传到前端页面会显示为null,影响美观。比如,智联招聘网站上这个...,把null值统一转换为空字符串,解决这个问题。下面以JSon交互方式为例说明如...
  • 背景 目前接手一个新项目中生成报表需求中,读取数据库数据之后非常多String类型字段,在写入csv报表...因此想到自定义一个typeHandler来转换数据库中的null字段 字符串 解决方案 1、自定义handler 注...
  • 在Rails中,当从表单保存模型并且用户不提供时,会将字符串记录到数据库中,而不是像许多人希望那样记录为NULL(混合空白和NULL可能会造成混淆)。 使用此插件,您可以指定属性列表(或所有属性例外),...
  • 开始设计数据库字段时,将varchar2val字段设置为了not null, 然而在其中一种特殊业务场景,对应val可以为空,前端传值为空字符串——"",并且透传给数据库存储,然而在insert时抛出了ORA-01400空指针异常:...
  •   在设计数据库的时候查看工作记录就把上机时间和下机时间都放在了工作记录表里,但是在后期码代码过程出现以下问题,原因在于下机时间设置为null,这也就默认了可以插入一个空的下机时间,但是数据库认,C#...
  • 值转换为可类型

    2019-10-05 08:03:29
    类型实例,这里不过多介绍Nullable,只说明一点它在int基础上可存储了null值,有时候在数据库操作时,我们会创建一个用于封装所需参数类Model,若数据库中某个Int类型字段可为空,为了保证与数据库同步,...
  • 当从数据库中获取值的时候 报错:对象不能转换为值类型 因为数据库你查询数据的时候不是所有的字段都是存在数据的,有些字段可能是Null值,也就是没有数据 当你在类型转换的时候就有可能出现这种错误 在网上也...
  • DB2中的空值和NULL值处理

    千次阅读 2013-04-04 16:48:43
    DB2中的空值和NULL值处理  2012-05-11 14:11:58| 分类: 数据库相关|字号 订阅 1. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,'')把NULL转换成'';  2. 输入类型...
  • 情景1: 有些字段为null,指定有返回 情景2:只想返回实体类中的部分字段,查询语句指定select后面要返回的值,不想返回的为null 使用 @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) JSON原来经过...
  • Oracle函数除了字符函数、日期函数、数学函数、以及转换函数等等,还有一些函数是通用函数,比如:NVL、NVL2,、NULLIF、COALESCE。 下面就来看一下它们用法: ...如果expr1的值为空,则...
  • SQLISNULL的使用

    2019-10-06 15:34:50
    在敲写相关sql语句时,我们经常会遇到一些空字符串或者是字段,这就给我们对数据库造成一定麻烦,系统经常会提示“某值null不能转换”“插入的值不能为空”等等诸如此类提示,isnull函数会帮助你搞定这些小菜...
  • 数据库中(比如sqlserver)中,任何类型值都是可以null,这就给我们在往数据库中插入值带来麻烦了,比如要往数据库中的int字段中插入一个null值,而C#在2.0之前,是不可能给一个int类型...
  • 数据库中(比如sqlserver)中,任何类型值都是可以null,这就给我们在往数据库中插入值带来麻烦了,比如要往数据库中的int字段中插入一个null值,而C#在2.0之前,是不可能给一个int类型...
  • 如果该字段未配置为允许null,则更新版本MySQL会将值转换为空字符串。 请注意,旧版本实际上可能会返回错误。 当分配给给定属性的值null时,Laravel(5.1)当前不支持将可为空的数据库字段自动设置为null 。 ...
  • 102 在集函数计算NULL值 103 无效表名 104 删除0行记录 105 插入0行记录 106 更新0行记录 107 跨语句游标操作 108 回收权限时无相应权限 109 试图转换空字符串 110 编译没有结束 111 结果集数据获取完成 112 不...
  • 数据库中的数据时,数据库中的字段有可能是空值,虽然Linq中Field方法和SetField方法都可以处理可以 null 类型,不必像前面示例那样检查 Null ,我们再用Field将一些可空的值赋给实体属性时,有可能会...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 241
精华内容 96
关键字:

数据库中null值的转换为空