BigDecimal 0E-8 BigDecimal.toPlainString()
BigDecimal0E-8
·
BigDecimal 0E-8 科学计数法问题

BigDecimal.toString()

BigDecimal.toPlainString()



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;
// 自定义 BigDecimal 序列化器
public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {
@Override
public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if (Objects.nonNull(value)) {
gen.writeString(value.toPlainString());
} else {
gen.writeString("0");
}
}
}
需要0就显示0,加一段话哈

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;
// 自定义 BigDecimal 序列化器
public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {
@Override
public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if (Objects.nonNull(value) && value.compareTo(BigDecimal.ZERO) != 0) {
gen.writeString(value.toPlainString());
} else {
gen.writeString("0");
}
}
}

反系列化
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.core.JacksonException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import java.io.IOException;
import java.math.BigDecimal;
// 自定义 BigDecimal 序列化器
public class BigDecimalDeserializer extends JsonDeserializer<BigDecimal> {
@Override
public BigDecimal deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JacksonException {
String value = p.getValueAsString();
if (StrUtil.isBlank(value)) {
return null;
}
return new BigDecimal(value);
}
}
更多推荐
所有评论(0)