From 691467907c8747809dd19a8ad4d3244b91cb0db7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Wed, 3 Sep 2025 18:37:40 +0800 Subject: [PATCH] =?UTF-8?q?feat(common):=20=E5=BF=BD=E7=95=A5=20JSON=20?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E6=9C=AA=E7=9F=A5=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 JacksonConfig 中配置 ObjectMapper,禁用 FAIL_ON_UNKNOWN_PROPERTIES 功能 - 在 Menu 类中添加 @JsonIgnoreProperties 注解,忽略未知属性 - 这些修改可以避免反序列化时出现 "Unrecognized field" 错误 --- .../java/com/gxwebsoft/common/core/config/JacksonConfig.java | 4 ++++ src/main/java/com/gxwebsoft/common/system/entity/Menu.java | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/main/java/com/gxwebsoft/common/core/config/JacksonConfig.java b/src/main/java/com/gxwebsoft/common/core/config/JacksonConfig.java index 77ec1cd..0c73720 100644 --- a/src/main/java/com/gxwebsoft/common/core/config/JacksonConfig.java +++ b/src/main/java/com/gxwebsoft/common/core/config/JacksonConfig.java @@ -1,5 +1,6 @@ package com.gxwebsoft.common.core.config; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; @@ -31,6 +32,9 @@ public class JacksonConfig { // 禁用将日期时间戳写为纳秒 mapper.disable(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS); + // 忽略未知字段,避免反序列化时出现 "Unrecognized field" 错误 + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + return mapper; } } diff --git a/src/main/java/com/gxwebsoft/common/system/entity/Menu.java b/src/main/java/com/gxwebsoft/common/system/entity/Menu.java index f97edfd..9ad3a79 100644 --- a/src/main/java/com/gxwebsoft/common/system/entity/Menu.java +++ b/src/main/java/com/gxwebsoft/common/system/entity/Menu.java @@ -1,6 +1,7 @@ package com.gxwebsoft.common.system.entity; import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -18,6 +19,7 @@ import java.util.List; @Data @ApiModel(description = "菜单") @TableName("sys_menu") +@JsonIgnoreProperties(ignoreUnknown = true) public class Menu implements GrantedAuthority { private static final long serialVersionUID = 1L; public static final int TYPE_MENU = 0; // 菜单类型