在Java 后端開發(fā)過程中,有的碼友們會(huì)遇到,當(dāng)某個(gè)價(jià)格字段是BigDecimal類型時(shí),值的小數(shù)點(diǎn)后面兩位0的時(shí)候,比喻89.00,返回給前端展示的時(shí)候,變成了89,后面的兩個(gè)小數(shù)就不見了。這種情況可以使用自定義序列化方式解決。文章來源地址http://www.zghlxwxcb.cn/news/detail-606915.html
- 第一步,自定義序列化類
package com.xxx.common.utils;
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;
/**
* @author: joe qiu
* @since: 2023/4/15 15:43
* @description:
*/
public class BigDecimalSerialize extends JsonSerializer<BigDecimal> {
@Override
public void serialize(BigDecimal bigDecimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
if (null != bigDecimal ) {
jsonGenerator.writeString(bigDecimal.setScale(2, BigDecimal.ROUND_HALF_DOWN).toPlainString() );
} else {
jsonGenerator.writeString(BigDecimal.ZERO.toPlainString());
}
}
}
- 在需要序列化的字段上使用該自定義序列化類
@JsonSerialize(using = BigDecimalSerialize.class)
@ApiModelProperty("xx價(jià)格")
private BigDecimal price;
- 還可以解決其他特殊字段類型特殊要求的轉(zhuǎn)換需求,比喻Date 類型的處理
文章來源:http://www.zghlxwxcb.cn/news/detail-606915.html
到了這里,關(guān)于解決Java后端開發(fā)過程中,后端是BigDecimal類型,返回前段后兩位小數(shù)是0的話自動(dòng)去掉的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!