目录
前言:
问题现象:
解决方法:
效果:
前言:
做项目的时候数据字段通常定义为bigdecimal类型,方便进行运算,但是发现接口调用后返回给前台的是字符串,这篇博文讲的是如何将定义的bigdecimal类型返回给前台数字类型
问题现象:
解决方法:
创建CustomerBigDecimalSerialize类
package com.dh.agrisubs.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.util.Objects;
public class CustomerBigDecimalSerialize extends JsonSerializer<BigDecimal> {
@Override
public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if(Objects.nonNull(value)) {
gen.writeNumber(value.stripTrailingZeros().doubleValue());
//去除0后缀,如果想统一进行保留精度,也可以采用类似处理
}else {//如果为null的话,就写null
gen.writeNull();
}
}
}
在实体类字段上添加注解:
@JsonSerialize(using = CustomerBigDecimalSerialize.class)