雪花算法id在json时后几位被置零

雪花算法id在json时后几位被置零

增加@JsonSerialize(using= ToStringSerializer.class)注解

```
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

/**
* id
*/
@TableId(value = "id", type = IdType.ID_WORKER)
@JsonSerialize(using= ToStringSerializer.class)
private Long id;
```

 

在返回前端的时候 超过2^53-1会丢精度 9007199254740991

我响应 16371993673322495  和 16371993673322497  都会变成16371993673322496

响应 16371993673322491  和 16371993673322493  都会变成16371993673322492

都转换成2的倍数了  至于底层原因  还不清楚

 

 

使用@JsonSerialize(using= ToStringSerializer.class) 注解在返回前端的时候转字符串即可解决

参考链接:

chrome种preview和response数据不一致,前端的参数在数据库查找不到

https://juejin.cn/post/7069666032163487774

 

Java jackson和FastJson 序列化时将Long类型ID转为字符串

https://blog.csdn.net/qq_23085893/article/details/98893948

 

posted @ 2022-12-16 18:31  java架构师1  阅读(135)  评论(0)    收藏  举报