今天构建做个会员级别的实体类,里面的percent为double类型,然后问题来了,在返回客户端的json数据中,double出现的精度问题,之前我是直接前端解决了算。。。
现在想想,觉得这事应该交由后端处理吧。毕竟数据也是交由后端来掌控的,理因由后端这边来善后
刚好因为我是ssm架构,json这边是用jackson,而jackson这边也提供了一个方式去处理这件事,以下是代码
1、建立类DoubleSerialize,直接复制以下代码
public class DoubleSerialize extends JsonSerializer<Double> {
private DecimalFormat df = new DecimalFormat("##.00");
@Override
public void serialize(Double value, JsonGenerator gen, SerializerProvider serializers)
throws IOException, JsonProcessingException {
if(value != null) {
gen.writeString(df.format(value));
}
}
}
2、在需要的字段上加上@JsonSerialize(using = DoubleSerialize.class)
如果这里DoubleSerialize.class一直报错,请自行import上该类的路径
好了,加完注解之后,我们发现问题已经解决了,而且没有失去精度,与数据库的数据一样