spring boot 项目返回值类型为bigDecimal 的时候在浏览器会丢失精度
数据库存100.00的时候 前端显示会变成100
数据库存100.01的时候 前端显示100.01
这个时候需要统一一下格式。spring默认使用Jackson做序列化和反序列化
Jackson配置
继承OebjectMapper 去配置SerializationFeature.WRITE_BIGDECIMAL_AS_PLAIN发现不能成功实现想要的。
只能手动实现
public class BigDecimalToStringSerializer extends StdSerializer<BigDecimal> {
public static final BigDecimalToStringSerializer instance = new BigDecimalToStringSerializer();
public BigDecimalToStringSerializer() {
super(BigDecimal.class);
}
@Override
public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider provider) throws IOException {
if (value == null) {
gen.writeString("0.00");
} else {
String val = value.toPlainString();
gen.writeString(val);
}
}
}
实现一个序列化机 然后注入 给他丢到继承了 MappingJackson2HttpMessageConverter的类里面即可