本文主要是介绍JAVA-记一次BigDecimal,String千分位转换,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在显示类上面添加@JsonSerialize注解,指定对应的转换格式例如,同理可在属性为BigDecimal的字段上添加注解,指定方法:
private String userTypeStr;/*** 交易金额*/@JsonSerialize(using = StringSerialize.class)private String transAmount;/*** 交易账户*/private String transMerUserId;
对应的格式化代码类String 千分位:
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import lombok.extern.slf4j.Slf4j;import java.io.IOException;
import java.math.BigDecimal;
import java.text.DecimalFormat;/*** 功能说明: bide千分位展示*/
@Slf4j
public class StringSerialize extends JsonSerializer<String> {@Overridepublic void serialize(String str, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {if (StrUtil.isBlank(str)) {jsonGenerator.writeNumber(BigDecimal.ZERO);} else {try {BigDecimal bigDecimal = new BigDecimal(str);jsonGenerator.writeString(new DecimalFormat("###,##0.00").format(bigDecimal));} catch (Exception e) {log.error("转换千分位异常: ", e);}}}
}
对应的BigDecimal 千分位代码:
public class BigDecimalSerialize extends JsonSerializer<BigDecimal> {@Overridepublic void serialize(BigDecimal bigDecimal, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {if (null == bigDecimal || bigDecimal.compareTo(BigDecimal.ZERO) == 0) {jsonGenerator.writeNumber(BigDecimal.ZERO);} else {jsonGenerator.writeString(new DecimalFormat("###,##0.00").format(bigDecimal));}}
}
效果:
这篇关于JAVA-记一次BigDecimal,String千分位转换的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!