diff --git a/src/main/java/com/cool/core/config/BigNumberSerializer.java b/src/main/java/com/cool/core/config/BigNumberSerializer.java deleted file mode 100644 index 8707ff5..0000000 --- a/src/main/java/com/cool/core/config/BigNumberSerializer.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.cool.core.config; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.annotation.JacksonStdImpl; -import com.fasterxml.jackson.databind.ser.std.NumberSerializer; - -import java.io.IOException; - -/** - * 超出 JS 最大最小值 处理 - */ -@JacksonStdImpl -public class BigNumberSerializer extends NumberSerializer { - - /** - * 根据 JS Number.MAX_SAFE_INTEGER 与 Number.MIN_SAFE_INTEGER 得来 - */ - private static final long MAX_SAFE_INTEGER = 9007199254740991L; - private static final long MIN_SAFE_INTEGER = -9007199254740991L; - - /** - * 提供实例 - */ - public static final BigNumberSerializer INSTANCE = new BigNumberSerializer(Number.class); - - public BigNumberSerializer(Class rawType) { - super(rawType); - } - - @Override - public void serialize(Number value, JsonGenerator gen, SerializerProvider provider) throws IOException { - // 超出范围 序列化位字符串 - if (value.longValue() > MIN_SAFE_INTEGER && value.longValue() < MAX_SAFE_INTEGER) { - super.serialize(value, gen, provider); - } else { - gen.writeString(value.toString()); - } - } -} \ No newline at end of file diff --git a/src/main/java/com/cool/core/config/JacksonConfig.java b/src/main/java/com/cool/core/config/JacksonConfig.java index eba5baf..8351306 100644 --- a/src/main/java/com/cool/core/config/JacksonConfig.java +++ b/src/main/java/com/cool/core/config/JacksonConfig.java @@ -1,14 +1,19 @@ package com.cool.core.config; +import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JacksonStdImpl; import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.ser.std.NumberSerializer; +import java.io.IOException; +import java.math.BigInteger; +import java.text.SimpleDateFormat; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; -import java.math.BigInteger; - @Configuration public class JacksonConfig { @@ -22,7 +27,41 @@ public class JacksonConfig { simpleModule.addSerializer(Long.TYPE, BigNumberSerializer.INSTANCE); simpleModule.addSerializer(BigInteger.class, BigNumberSerializer.INSTANCE); objectMapper.registerModule(simpleModule); - + // 配置日期格式为 yyyy-MM-dd HH:mm:ss + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + objectMapper.setDateFormat(dateFormat); return new MappingJackson2HttpMessageConverter(objectMapper); } + + /** + * 超出 JS 最大最小值 处理 + */ + @JacksonStdImpl + public static class BigNumberSerializer extends NumberSerializer { + + /** + * 根据 JS Number.MAX_SAFE_INTEGER 与 Number.MIN_SAFE_INTEGER 得来 + */ + private static final long MAX_SAFE_INTEGER = 9007199254740991L; + private static final long MIN_SAFE_INTEGER = -9007199254740991L; + + /** + * 提供实例 + */ + public static final BigNumberSerializer INSTANCE = new BigNumberSerializer(Number.class); + + public BigNumberSerializer(Class rawType) { + super(rawType); + } + + @Override + public void serialize(Number value, JsonGenerator gen, SerializerProvider provider) throws IOException { + // 超出范围 序列化位字符串 + if (value.longValue() > MIN_SAFE_INTEGER && value.longValue() < MAX_SAFE_INTEGER) { + super.serialize(value, gen, provider); + } else { + gen.writeString(value.toString()); + } + } + } } \ No newline at end of file