因为springboot默认采用jackson序列化,而jackson序列化又可以自定义序列化器,所以我们在返回double或者bigdeimal类型数据时,可以指定序列化器,而不用在代码里面处理这样可以避免重复的处理代码
1、自定义序列化器:
public class CustomDecimalSerialize extends JsonSerializer<BigDecimal> { @Override public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException { if (value != null) { value = value.setScale(2, BigDecimal.ROUND_HALF_UP); gen.writeString(value.toString()); } } }
2、在double或者bigdecimal类型字段上指定自定义的序列化器:
//指标值 @JsonSerialize(using = CustomDecimalSerialize.class) protected BigDecimal value;
最终的效果: