在开发页面的时候,遇到Long类型的数据,传送给前端遇到精度丢失的问题,
后端发的数据是这个:
前端接收到的数据:
解决的途径有二种:
1 、在后端把Long类型的数据改成String类型(不推荐)
2、springboot项目可以添加注解:@JsonSerialize(using= ToStringSerializer.class)
代码如下:
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@ApiModelProperty(value = "id")
@JsonSerialize(using= ToStringSerializer.class)
private Long id;
注:这里jackson提供的提供的工具包
也可以扩展@JsonSerialize这个注解,进行其他操作
比如:
public class MyStatusSerializer extends JsonSerializer<Integer> {
@Override
public void serialize(Integer status, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
String statusStr = "";
switch (status) {
case 0:
statusStr = "未使用";
break;
case 1:
statusStr = "已使用";
break;
case 2:
statusStr = "已过期";
break;
case 3:
statusStr = "已销毁";
break;
default:
statusStr = "未知状态";
}
jsonGenerator.writeString(statusStr);
}
}
在需要的地方添加注解
/**
* 优惠卷状态
*/
@JsonSerialize(using = MyStatusSerializer.class)
private int status;
注:@JsonSerialize注解,该注解应用于数据转换,注解作用在该属性的getter()方法上