In Szenarien, in denen sensible oder irrelevante Daten aus JSON-Antworten ausgeschlossen werden müssen, bietet Spring MVC einen flexiblen Mechanismus zum Ignorieren bestimmte Felder während des Serialisierungsprozesses.
Mit der Annotation @JsonIgnoreProperties können Sie bestimmte Felder von der Serialisierung in JSON ausschließen. Bei der Anwendung auf ein POJO verwendet es eine Liste von Feldnamen als Argumente und lässt diese Felder in der JSON-Darstellung weg. Wenn Sie beispielsweise die Felder „createdBy“ und „updateBy“ aus dem in der Frage beschriebenen Benutzerobjekt ausschließen möchten:
@Entity @Table(name = "user") @JsonIgnoreProperties(ignoreUnknown = true, value = {"createdBy", "updatedBy"}) public class User { // Class variables and methods }
Mit dieser Annotation enthält die JSON-Antwort nur die Felder, die explizit im Wertparameter angegeben sind. nämlich userId, userName und emailId.
Eine andere Möglichkeit besteht darin, die @JsonIgnore-Annotation für einzelne Felder zu verwenden. Diese Anmerkung gibt an, dass das Feld sowohl bei der Serialisierung als auch bei der Deserialisierung ignoriert werden sollte. Dies ist nützlich, wenn die Liste der ausgeschlossenen Felder dynamisch ist und sich je nach Laufzeitbedingungen ändern kann. Wenn Sie beispielsweise das Feld „encryptedPwd“ dynamisch ausschließen möchten:
@Entity @Table(name = "user") @JsonIgnoreProperties(ignoreUnknown = true) public class User { // Other class variables and methods @JsonIgnore private String encryptedPwd; }
Durch Festlegen von @JsonIgnore für das Feld „encryptedPwd“ wird es von der JSON-Serialisierung ausgeschlossen, selbst wenn es in der get-Methode des enthalten ist POJO.
Eine praktische Implementierung dieser Techniken finden Sie in diesem GitHub-Repository: https://github.com/spring-projects/spring-framework/tree/main/ spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcAnnotationConfigTests.
Das obige ist der detaillierte Inhalt vonWie schließe ich Felder dynamisch von der JSON-Serialisierung in Spring MVC aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!