作用:返回給前端的實體類中的double類型的數據,需要保留兩位小數,但是不足兩位不能補0,如double a = 648.0000056,要返回648,而不能返回648.00。
實現方法:
1.首先添加封裝一個工具類,代碼如下:
package com.enn.zykzq.fastUtil; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.Objects; /** * @author zhangyakun * @date 2020/6/15 15:48 */ //修改JsonSerializer<Double> 到需要的類型,默認為JsonSerializer,參數為Object value public class JsonSerializerUtils extends JsonSerializer<Double> { @Override public void serialize(Double value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException { if (Objects.nonNull(value)) { //保留2位小數#代表末位是0舍去 DecimalFormat decimalFormat = new DecimalFormat("0.##"); //四舍五入 decimalFormat.setRoundingMode(RoundingMode.HALF_UP); String result = decimalFormat.format(value); jsonGenerator.writeNumber(Double.valueOf(result)); } else { jsonGenerator.writeNumber(Double.valueOf(0)); } } }
2.然后直接在需要處理的實體類中的double類型的數據上面加上注解即可
//用法:實體類添加 @JsonSerialize(using = JsonSerializerUtils.class) private double processMoney;