使用@JsonSerialize注解实现数字保持两位小数

首先需要建立工具类  BigDecimalFormatSerializer 继承JsonSerializer方法,对serialize方法进行重写

代码如下:(我在实体类中用的是Double类型的,所以再次只处理Double类型,如需转换其他类型可以将value的类型定义为所需的类型)

public class BigDecimalFormatSerializer extends JsonSerializer<Double> {

    private static final DecimalFormat FORMAT = new DecimalFormat("###.##");

    @Override
    public void serialize(Double value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {

        String text = null;
        //是否为空
        if (value != null) {
            try {
                //格式化是否为空
                text = FORMAT.format(value);
            } catch (Exception e) {
                text = value.toString();
            }
        }
        if (text != null) {
            jsonGenerator.writeString(text);
        }
    }
}

第二步:

在返回值的实体类中添加注解

@JsonSerialize(using = BigDecimalFormatSerializer.class)
@ApiModelProperty(value = "金额")
private Double je;

然后获取值,就会发现对应的值已经保留两位小数了

原文地址:https://www.cnblogs.com/1gaoyu/p/15798088.html