问题描述:在我们进行JSON反序列化的时候,返回的对象属性值为NULL
原因分析:
在我们请求外部接口的时候,返回的JSON串内的字段属性首字母为大写,我们定义的实体如下图所示:
由于 jackson-databind在反序列化的时候,底层默认情况下,是通过Java bean的get,set方法,通过去掉get,set再把首字母小写得到的名字去和JSON的属性进行匹配。例如:getStatus()经处理后得到的是status,而这个属性值在我们JSON字符串中是匹配不上的(不存在的),所以结果为NULL。
解决方案:只需要在字段属性添加注解 @JsonProperty("字段名") 就可以解决问题
- @JsonProperty:主要用于序列化为JSON的时候给某个字段取别名,即在JSON中显示不同于字段的名字
至此,便可以顺利解决问题!