返回的字段定义一个salary字段是BigDecimal类型的,后端返回了10.00,前端跟我说是10,没有.00
数据库定义的字段就是 decimal(12,2) 类型,debug查看内存中值也是10.00
自己使用yapi的接口测试工具显示也是10.00
百度一番说要加上注解@JsonFormat(shape = JsonFormat.Shape.STRING)
/**
* 薪水
*/
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal salary;
结果没用
怀疑是序列化的问题
本地使用objectMapper序列化也是包含.00的
找到spring序列化的源码AbstractJackson2HttpMessageConverter->writeInternal方法
最终定位到UTF8JsonGenerator 这些也是正常的
想起来是不是yapi的序列化有问题,试用postman 浏览器直接发送请求显示的是10.00
问了前端使用的http请求的js库 Axios
然后google一下果然早就有人提到了这个问题,原来是js JSON序列化导致的,试验了下 果然是这样