Heim  >  Artikel  >  Java  >  Wie schließe ich Felder dynamisch von der JSON-Serialisierung in Spring MVC aus?

Wie schließe ich Felder dynamisch von der JSON-Serialisierung in Spring MVC aus?

Linda Hamilton
Linda HamiltonOriginal
2024-10-26 04:37:02885Durchsuche

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

Dynamisches Ausschließen von Feldern aus der JSON-Serialisierung in Spring MVC

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.

Annotation @JsonIgnoreProperties

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.

@JsonIgnore-Annotation

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.

Github-Beispiel

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn