golang解决雪花ID传前端精度丢失问题

使用雪花算法生成ID做主键时,前端接收时会出现精度丢失的问题 这是因为JS是弱语言,前端接收数字类型参数为number 最大接收长度为16位,超出长度则会丢失精度 而JAVA的Long类型长度为19位,所以传输到前端的后三位精度丢失

JAVA解决方案

可以通过添加@JsonSerialize(using = ToStringSerializer.class)注解来解决此问题

Golang解决方案

只需要在tag的json后添加string类型即可

1
2
3
4
5
type User struct {
	Id               int64     `json:"id,string"`
	Name             string    `json:"name" form:"name"`
	Email            string    `json:"email" form:"email"`
}