Jackson转换实体 double 保留两位小数

根据业务,需要通过后端给前端返回金额值,一般需要保留两位小数,使用jackson转换对象列表

public class CustomDoubleSerialize extends JsonSerializer<Double> {

    private DecimalFormat df = new DecimalFormat("##.00");  

    @Override
    public void serialize(Double value, JsonGenerator gen, SerializerProvider serializers)
            throws IOException, JsonProcessingException {
        if(value != null) {
            gen.writeString(df.format(value));  
        }
    }
}

然后需要给需要转换的属性上面加上注解,如下

/**
     * 应还金额:项目系统:amt - principalReturn
     */
    @JsonSerialize(using = CustomDoubleSerialize.class)
    private Double needReturn;
    public Double getNeedReturn() {
        if(amt == null || principalReturn == null) {
            if(amt != null) {
                return amt;
            }
            if(principalReturn != null) {
                return 0 - principalReturn;
            }
            return null;
        }
        return amt - principalReturn;
    }

你可能感兴趣的:(jackson)