借鉴:https://www.zhangshengrong.com/p/9MNlD4k9NJ/
前台收到后台的long损失了2个精度,变成了00
postman里的显示是正常的
是因为Java的long类型是18位的,而js的long类型是16位的
其他解决方案请借鉴上链接。
我的解决方案是
添加了
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class JacksonConfig { /** * Jackson全局转化long类型为String,解决jackson序列化时long类型缺失精度问题 * * @return Jackson2ObjectMapperBuilderCustomizer 注入的对象 */ @Bean public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() { return jacksonObjectMapperBuilder -> jacksonObjectMapperBuilder .serializerByType(Long.class, ToStringSerializer.instance) .serializerByType(Long.TYPE, ToStringSerializer.instance); } }