Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengecualikan Medan secara Dinamik daripada Pensirilan JSON dalam Spring MVC?

Bagaimana untuk Mengecualikan Medan secara Dinamik daripada Pensirilan JSON dalam Spring MVC?

Linda Hamilton
Linda Hamiltonasal
2024-10-26 04:37:02885semak imbas

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

Mengecualikan Medan Secara Dinamik daripada Pensirilan JSON dalam Spring MVC

Dalam senario di mana data sensitif atau tidak berkaitan perlu dikecualikan daripada respons JSON, Spring MVC menyediakan mekanisme yang fleksibel untuk diabaikan medan tertentu semasa proses bersiri.

@JsonIgnoreProperties Anotasi

Anotasi @JsonIgnoreProperties membolehkan anda mengecualikan medan tertentu daripada bersiri ke dalam JSON. Digunakan pada POJO, ia memerlukan senarai nama medan sebagai argumen, mengetepikan medan tersebut daripada perwakilan JSON. Contohnya, jika anda ingin mengecualikan medan createdBy dan updatedBy daripada objek Pengguna yang diterangkan dalam soalan:

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

Dengan anotasi ini, respons JSON hanya akan memasukkan medan yang dinyatakan secara eksplisit dalam parameter nilai, iaitu userId, userName dan emailId.

@JsonIgnore Anotasi

Pilihan lain ialah menggunakan @JsonIgnore anotasi pada medan individu. Anotasi ini menunjukkan bahawa medan harus diabaikan semasa penyirian dan penyahserikatan. Ia berguna apabila senarai medan yang dikecualikan adalah dinamik dan mungkin berubah berdasarkan keadaan masa jalan. Contohnya, jika anda ingin mengecualikan medan encryptedPwd secara dinamik:

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

Dengan menetapkan @JsonIgnore pada medan encryptedPwd, ia akan dikecualikan daripada siri JSON walaupun ia disertakan dalam kaedah get bagi POJO.

Contoh Github

Perlaksanaan praktikal teknik ini boleh didapati dalam repositori GitHub ini: https://github.com/spring-projects/spring-framework/tree/main/ spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/WebMvcAnnotationConfigTests.

Atas ialah kandungan terperinci Bagaimana untuk Mengecualikan Medan secara Dinamik daripada Pensirilan JSON dalam Spring MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn