Jackson忽略字段實現(xiàn)對字段進行序列化和反序列化
更新時間:2023年10月17日 14:12:48 作者:qq_35987023
在使用?Jackson?進行序列化和反序列化時,有時候需要對某些字段進行過濾,以便在?JSON?數(shù)據(jù)中不包含某些敏感信息,下面就一起來了解一下Jackson忽略字段實現(xiàn)對字段進行序列化和反序
在使用 Jackson 進行序列化和反序列化時,有時候需要對某些字段進行過濾,以便在 JSON 數(shù)據(jù)中不包含某些敏感信息
@JsonInclude
可以標記在字段上
@Target({ElementType.ANNOTATION_TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @JacksonAnnotation public @interface JsonIgnore { boolean value() default true; }
例如,以下代碼示例使用 @JsonIgnore
注解來隱藏敏感的密碼字段:
@Data public class User { private Integer id; private String username; @JsonIgnore // 隱藏了password字段 private String password; }
@JsonIgnoreProperties
可以標記在類上
@Target({ElementType.ANNOTATION_TYPE, ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @JacksonAnnotation public @interface JsonIgnoreProperties { String[] value() default {}; }
@Data @JsonIgnoreProperties({"username","password"}) public class User { private Integer id; private String username; private String password; }
@JsonIgnoreType
// 被該注解修飾的類, // 作為其他類的成員變量時,不論是序列化還是反序列化都被忽略了; @JsonIgnoreType @JsonIgnoreType public class TestChild { private int value; } // Test類進行序列化和反序列時, // 字段child被忽略 public class Test { private String name; private TestChild child; }
JsonAutoDetect
// 根據(jù)訪問權限修飾符,對字段是否進行序列化和反序列化 @JsonAutoDetect // 只對訪問權限修飾符為public的字段進行序列化和反序列化 @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.PUBLIC_ONLY) public class College { private String name; private String city; protected int age; }
// fieldVisibility屬性有以下值可選 ANY // 所有 NON_PRIVATE // private之外的 PROTECTED_AND_PUBLIC // protected和public的(此時privte和默認的package access時不能被自動識別的) PUBLIC_ONLY // public的 NONE // 禁止自動識別 DEFAULT // 默認的,用于繼承父類的自動識別的范圍
參考鏈接
https://blog.csdn.net/weixin_45427648/article/details/129645380
到此這篇關于Jackson忽略字段實現(xiàn)對字段進行序列化和反序列化的文章就介紹到這了,更多相關Jackson忽略字段內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java中ShardingSphere分庫分表實戰(zhàn)
我們做項目的時候,數(shù)據(jù)量比較大,單表千萬級別的,需要分庫分表,本文主要介紹了Java中ShardingSphere分庫分表實戰(zhàn),感興趣的可以了解一下2021-09-09Spring Boot 和 Spring 到底有啥區(qū)別你知道嗎
Spring Boot框架的核心就是自動配置,只要存在相應的jar包,Spring就幫我們自動配置。接下來通過本文給大家介紹Spring與Spring boot的區(qū)別介紹,非常不錯,需要的朋友參考下吧2021-08-08