发送Http请求null变成字符串’null’
问题描述
前端调用A系统,A系统通过HttpClient调用B系统,传的参数为都是a。
B系统应用MyBatis查询数据,其中xml文件有判断如下
<if test="a != null and a != ''> and a = #{a}</test>
通过跟踪代码发现,其中参数a前端传的是null,A传到B却成为了字符串的’null’,导致sql中加了a='null’条件。
问题原因
JSON传值时,只有字符串和数字,所以会将null转换为了字符串的’null’。
解决方法
可以在A系统调用前加判断,将null值的字段去掉,或者在B系统加判断将字符串的’null’转为null,或者在xml中的判断再加一个a != ‘null’。