springboot2 json 反序列化问题导致float可以强制转换到int类型

阅读:570
作者:majingjing
发布:2020-04-02 22:20:03

springboot项目开发过程中, api的数据交互基本都是使用json格式 当我们在使用 @RequestBody 绑定到 Java对象的时候,会碰到默认的数据类型转换问题.

比如我们有严格的数据要求, 如Integer类型的字段, 不允许传人非整型数据时,就需要调整json的反序列化默认配置

场景示例如下:

可以看出,此时并非我们预期的报错, 而是默认处理了, 将小数强制转换成了整数 . 这在需要严格的数据要求情况下是觉得不允许的.


那么我们怎么解决这个问题, 让程序抛错了 ???

翻看源代码 com.fasterxml.jackson.databind.DeserializationFeature 里面的配置项

默认启用了 float to int 的配置项
现在问题找到了, 我们只需将此配置改为false即可