项目使用了 spring boot 作为基础机构,默认 json 使用了 jackson,处理如下
创建一个类用户处理 BigDecimal 小数点精确的问题
java
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;
public class BigDecimalSerialize extends JsonSerializer {
@Override
public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
if (o != null && o instanceof BigDecimal) {
BigDecimal bigDecomal = (BigDecimal) o;
jsonGenerator.writeString(bigDecomal.setScale(2, BigDecimal.ROUND_DOWN) + "");
}
}
}
然后在代码中添加如下代码
java
@JsonSerialize(using = BigDecimalSerialize.class)
private BigDecimal cmpayNakedPrice;
执行正常