Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Secara Selektif Mengecualikan Medan daripada Pensiri JSON Tanpa Menjejaskan Penyahserikatan?
Aplikasi Selektif @JsonIgnore: Menangani Pengecualian Pensirian sahaja
Semasa pertukaran data dengan pelayan, objek pengguna mungkin mengandungi maklumat sensitif yang harus disembunyikan daripada pelanggan semasa bersiri. Pendekatan yang sering digunakan ialah menggunakan anotasi @JsonIgnore untuk menyembunyikan sifat sensitif. Walau bagaimanapun, ini juga boleh mengganggu penyahserialisasian, mewujudkan cabaran dalam senario tertentu.
Memahami Isu
Anotasi @JsonIgnore pada harta menghalang kemasukannya dalam siri JSON. Walau bagaimanapun, jika sifat yang sama diperlukan semasa penyahserikatan (cth., untuk membuat akaun pengguna), pengecualian menjadi bermasalah.
Pengecualian Terpilih dengan @JsonIgnore
Untuk menyelesaikannya isu ini, dua pendekatan berbeza boleh diambil bergantung pada versi Jackson yang digunakan:
Jackson versi sebelum 1.9:
Jackson versi 1.9 dan kemudian:
Contoh:
Pertimbangkan objek pengguna dengan medan kata laluan:
@JsonIgnore private String password; // Setter with READ_ONLY access (Jackson 1.9 and later) @JsonProperty(access = JsonProperty.Access.READ_ONLY) public void setPassword(String password) { this.password = password; }
Nota:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Secara Selektif Mengecualikan Medan daripada Pensiri JSON Tanpa Menjejaskan Penyahserikatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!