探讨map空值以及json空值

平时的项目中由于不知名情况,数据库中的字段不知道有意还是无意,反正都会有null、或者空字符串的情况。

1.mybatis取数时空会得到什么?
mapper:

<select id="findAll" resultType="User">
        select user_id id,user_name userName,user_age age from t_user
    </select>

当返回类型为对象的时候,数据库NULL的情况下页面正常的EL表达式取值为空。

2.返回类型List<Map<String, String>>

<resultMap type="java.util.HashMap" id="userResultMap">
        <id property="user_id" column="user_id"/>
        <result property="user_age" column="user_age"/>
        <result property="user_name" column="user_name"/>
    </resultMap>
    <select id="get" parameterType="java.util.HashMap" resultMap="userResultMap">
        select user_id id,user_name userName,user_age age from t_user 
        where 1=1
        <if test="user_age != null and user_age != ''">
        and user_age=#{user_age}
        </if>

    </select>

返回的数据有一条是NULL的,页面该空格变为空。


当获取数据库值是,返回类型为实体对象或者map,当数据库为NULL时,map应该就映射为了空字符串,jsp通过EL表达式获得的值也是空字符串。

EL表达式中:
使用empty判断为空或者字符串。
==null 判断是否为空

3.json
使用发现,json往往对某个对象或者map进行转化,一旦map中的某个键值对为NULL 或者没设置对象的属性值的时候,转化出来的json字符串就会有null字符串显示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值