|
@@ -0,0 +1,30 @@
|
|
|
+package com.leromro.common.config.serializer;
|
|
|
+
|
|
|
+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.math.RoundingMode;
|
|
|
+import java.text.DecimalFormat;
|
|
|
+import java.util.Objects;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 保留两位小数 使用: @JsonSerialize(using = BigDecimalSerializer.class)
|
|
|
+ */
|
|
|
+public class BigDecimalSerializer extends JsonSerializer<BigDecimal> {
|
|
|
+
|
|
|
+ private static final DecimalFormat FORMATTER = new DecimalFormat("0.00");
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void serialize(BigDecimal value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
|
|
|
+ if (Objects.isNull(value)) {
|
|
|
+ jsonGenerator.writeNull();
|
|
|
+ } else {
|
|
|
+ // 统一设置为2位小数,向下取整(可根据需要更换 RoundingMode)
|
|
|
+ value = value.setScale(2, RoundingMode.DOWN);
|
|
|
+ jsonGenerator.writeString(FORMATTER.format(value));
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|