问题起源:
工作中遇到将数据库中decimal整数拿给前端后面需要加上.00的情况,如果金额不是整数则不修改
解决方法
package com.yj.domain.util;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Objects;
public class BigDecimalJsonSerializerUtil extends JsonSerializer<BigDecimal> {
@Override
public void serialize(BigDecimal value, JsonGenerator jsonGenerator, SerializerProvider serializers) throws IOException {
if (Objects.nonNull(value)) {
DecimalFormat decimalFormat = new DecimalFormat("0.00");
String result = decimalFormat.format(value);
jsonGenerator.writeString(result);
} else {
jsonGenerator.writeString("0.00");
}
}
}
在需要更改属性的上面加入注解(使用这个类进行格式化): @JsonSerialize(using = BigDecimalJsonSerializerUtil.class) 例如:
@ApiModelProperty(value = "充值总金额")
@JsonSerialize(using = BigDecimalJsonSerializerUtil.class)
private BigDecimal totalRechargeAmount;
|