From e9cf0ed8b469ed5886bec57a65ef17c4d19ab2ee Mon Sep 17 00:00:00 2001 From: 0v <630880801@qq.com> Date: Tue, 28 Oct 2025 10:40:33 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E9=95=BF=E6=95=B4=E5=9E=8B?= =?UTF-8?q?=E6=95=B0=E5=80=BC=E5=89=8D=E7=AB=AF=E8=8E=B7=E5=8F=96=E7=B2=BE?= =?UTF-8?q?=E5=BA=A6=E4=B8=A2=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xiaonuo/core/config/JacksonConfigure.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/snowy-web-app/src/main/java/vip/xiaonuo/core/config/JacksonConfigure.java b/snowy-web-app/src/main/java/vip/xiaonuo/core/config/JacksonConfigure.java index 14b4a29b..e66dd167 100644 --- a/snowy-web-app/src/main/java/vip/xiaonuo/core/config/JacksonConfigure.java +++ b/snowy-web-app/src/main/java/vip/xiaonuo/core/config/JacksonConfigure.java @@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.JsonStreamContext; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.module.SimpleModule; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -37,7 +38,7 @@ public class JacksonConfigure { public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) { ObjectMapper objectMapper = builder.createXmlMapper(false).build(); - objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer() { + objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<>() { @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider provider) throws IOException { // 若是APP端请求,则处理响应结果字段默认值 @@ -129,6 +130,22 @@ public class JacksonConfigure { } }); + JsonSerializer longSerializer = new JsonSerializer<>() { + @Override + public void serialize(Long value, JsonGenerator gen, SerializerProvider provider) throws IOException { + //Long类型值过大到前端造成精度丢失,需转换成String + if (Math.abs(value) > 9007199254740991L) { + gen.writeString(value.toString()); + } else { + gen.writeNumber(value); + } + } + }; + objectMapper.registerModule(new SimpleModule() {{ + addSerializer(Long.class, longSerializer); + addSerializer(Long.TYPE, longSerializer); + }}); + return objectMapper; }