Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Memohon secara Selektif @JsonAbaikan untuk Pensirian Hanya di Jackson?

Bagaimanakah Saya Boleh Memohon secara Selektif @JsonAbaikan untuk Pensirian Hanya di Jackson?

DDD
DDDasal
2024-11-28 11:09:131000semak imbas

How Can I Selectively Apply @JsonIgnore for Serialization Only in Jackson?

Aplikasi @JsonIgnore Terpilih: Pensirian Sahaja

Apabila bekerja dengan data sensitif semasa bersiri dan penyahsirilan, selalunya wajar untuk mengecualikan sifat tertentu daripada dihantar. Anotasi @JsonIgnore menawarkan fungsi ini, tetapi ia terpakai pada kedua-dua pensirilan dan penyahserilan secara lalai. Untuk senario di mana anda perlu menyekat penyulitan untuk bersiri sahaja, berikut ialah cara anda boleh mencapainya:

Penyelesaian Bergantung Versi

Sebelum Jackson versi 1.9, anda boleh menyekat @JsonIgnore untuk mendapatkan kaedah untuk dayakan penyahsirilan sambil melumpuhkannya untuk pensirilan. Ini bermakna hanya menganotasi pengambil dengan @JsonIgnore.

Pendekatan Baharu untuk Jackson 1.9

Dalam versi Jackson yang kemudian, anotasi @JsonProperty memberikan fleksibiliti tambahan. Untuk menggunakan @JsonIgnore hanya untuk bersiri:

  1. Tambah @JsonIgnore pada pengambil seperti sebelum ini.
  2. Tambah @JsonProperty dengan nama medan eksplisit pada kaedah penetap untuk sifat sensitif, memastikan penyahserikatan berfungsi seperti yang diharapkan.

Akses Peringkat Harta Control

Untuk versi dengan anotasi @JsonProperty.Access Jackson, anda mempunyai pilihan lain:

@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;

Ini membenarkan penyirian kata laluan tetapi menghalang penyahserikannya, dengan berkesan melindunginya. Rujuk dokumentasi Jackson untuk butiran lanjut.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memohon secara Selektif @JsonAbaikan untuk Pensirian Hanya di Jackson?. 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