在需要从 JSON 响应中排除敏感或不相关数据的场景中,Spring MVC 提供了灵活的机制来忽略序列化过程中的特定字段。
@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 注解。此注释指示在序列化和反序列化期间应忽略该字段。当排除字段的列表是动态的并且可能根据运行时条件而变化时,它非常有用。例如,如果你想动态排除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 存储库中找到: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中文网其他相关文章!