js long类型精度丢失_后端Long类型传到前端精度丢失的正确解决方式

原因:前端js对Long类型支持的精度不够,导致后端使用的Long传到前端丢失精度,比如现在分布式id生成算法“雪花算法”在使用中就会出现问题。

解决方式:

1、后端的Long类型的id转用String存储,不推荐,失去了其Long类型本身的意义。

2、在Long类型字段上使用注解标明序列化方式,代码量不大的情况可以考虑

@JsonSerialize(using = ToStringSerializer.class)private Long id;

3、实现WebMvcConfigurer接口,重写configureMessageConverters方法

@Overridepublic void configureMessageConverters(List>converters) {

MappingJackson2HttpMessageConverter jackson2HttpMessageConverter=

newMappingJackson2HttpMessageConverter();

ObjectMapper objectMapper= newObjectMapper();

SimpleModule simpleModule= newSimpleModule();

simpleModule.addSerializer(BigInteger.class, ToStringSerializer.instance);

simpleModule.addSerializer(Long.class, ToStringSerializer.instance);

simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance

你可能感兴趣的:(js,long类型精度丢失)