jsonObject空判断时拼接的问题

在进行数据传输时,用jsonObject传输数据,空判断时字符串拼接问题!

host.getString("agreeurl")得到的数据为空
正确写法:
 jsonObj.put("agreeurl", StringUtils.isNotEmpty(host.getString("agreeurl")) ? ossurl + host.getString("agreeurl") : "");
错误写法
 jsonObj.put("agreeurl",host.getString("agreeurl")!=null ? ossurl + host.getString("agreeurl") : "");

错误结果
agreeurl = ossUrl 数据为空时,但是却能获取到拼接的前缀
正确结果
agree= null

问题分析
数据为空时,但是却能获取到拼接时的前缀

jsonObj.put("agreeurl",host.getString("agreeurl")!=null ? ossurl + host.getString("agreeurl") : "");
由于host.getString("agreeurl")返回空,"" !=null。所以会走第一个条件,执行ossurl + host.getString("agreeurl")。

StringUtils.isNotEmpty改成StringUtils.isNotBlank