使用@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;

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM