springboot 返回前端json的double类型精度保留2位小数
springboot返回前端的double类型需要规范精度,找了很多办法才有一个不会报错的
public class CustomerDoubleUtil extends JsonSerializer<Object> { /** * 将返回的BigDecimal保留两位小数,再返回给前端 * @param value * @param jsonGenerator * @param serializerProvider * @throws IOException * @throws JsonProcessingException */ @Override public void serialize(Object value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { if (value != null) { BigDecimal bigDecimal = new BigDecimal(value.toString()).setScale(2,BigDecimal.ROUND_HALF_UP); jsonGenerator.writeString(bigDecimal.toString()); } } }
需要依赖的是
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; import java.math.BigDecimal;
这些是springboot和java自带的,应该不会出现问题
用的时候在对应字段上方加上注解
@JsonSerialize(using = CustomerDoubleUtil.class)
可能的问题会出现在返回前端的json里面对应字段就是字符串而不是数字需要再次转换
本文用于备忘和分享
下一篇:
js循环中延迟几秒执行下一段代码