首页  >  文章  >  Java  >  如何在 Spring MVC 中动态从 JSON 序列化中排除字段?

如何在 Spring MVC 中动态从 JSON 序列化中排除字段?

Linda Hamilton
Linda Hamilton原创
2024-10-26 04:37:02885浏览

How to Dynamically Exclude Fields from JSON Serialization in Spring MVC?

在 Spring MVC 中动态从 JSON 序列化中排除字段

在需要从 JSON 响应中排除敏感或不相关数据的场景中,Spring MVC 提供了灵活的机制来忽略序列化过程中的特定字段。

@JsonIgnoreProperties 注解

@JsonIgnoreProperties 注解允许您在序列化为 JSON 时排除特定字段。应用于 POJO 时,它采用字段名称列表作为参数,并从 JSON 表示中省略这些字段。例如,如果您想从问题中描述的 User 对象中排除createdBy和updatedBy字段:

@Entity
@Table(name = "user")
@JsonIgnoreProperties(ignoreUnknown = true, value = {"createdBy", "updatedBy"})
public class User {
    // Class variables and methods
}

使用此注释,JSON响应将仅包含在value参数中显式指定的字段,即 userId、userName 和 emailId。

@JsonIgnore 注解

另一个选项是在各个字段上使用 @JsonIgnore 注解。此注释指示在序列化和反序列化期间应忽略该字段。当排除字段的列表是动态的并且可能根据运行时条件而变化时,它非常有用。例如,如果你想动态排除encryptedPwd字段:

@Entity
@Table(name = "user")
@JsonIgnoreProperties(ignoreUnknown = true)
public class User {
    // Other class variables and methods
    
    @JsonIgnore
    private String encryptedPwd;
}

通过在encryptedPwd字段上设置@JsonIgnore,即使它包含在get方法中,它也会被排除在JSON序列化之外POJO。

Github 示例

这些技术的实际实现可以在此 GitHub 存储库中找到:https://github.com/spring-projects/spring-framework/tree/main/ spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcAnnotationConfigTests.

以上是如何在 Spring MVC 中动态从 JSON 序列化中排除字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn