Rumah >Java >javaTutorial >Bagaimana untuk 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.
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.
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.
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!