Bila Perlu Menggunakan Anotasi @JsonProperty di Jackson
Pertimbangkan kacang Java berikut:
public class State { private boolean isSet; @JsonProperty("isSet") public boolean isSet() { return isSet; } @JsonProperty("isSet") public void setSet(boolean isSet) { this.isSet = isSet; } }
Apabila ini objek disirikan kepada JSON dan dihantar melalui AJAX, panggilan balik kejayaan ditakrifkan sebagai:
success : function(response) { if(response.State.isSet){ alert('success called successfully) } }
Dalam senario ini, adakah anotasi @JsonProperty diperlukan?
Keperluan @ Anotasi JsonProperty
Anotasi @JsonProperty tidak diperlukan sepenuhnya di sini. Mengeluarkannya tidak akan menyebabkan sebarang kesan sampingan. Walau bagaimanapun, penggunaannya memberikan beberapa kelebihan:
Penamaan Harta Tersuai
Seperti yang ditunjukkan dalam kod di atas, anotasi ini boleh digunakan untuk menentukan nama sifat yang berbeza untuk siri dan tujuan penyahserikatan. Dalam kes ini, "isSet" berfungsi sebagai kedua-dua nama sifat dalam kacang dan nama harta dalam JSON bersiri. Dengan menggunakan @JsonProperty, pembangun boleh menyesuaikan nama harta untuk memadankan konvensyen penamaan pilihan atau untuk menyelesaikan konflik dengan skim penamaan sedia ada.
Penyesuaian Harta
Selain menamakan semula sifat, @JsonProperty juga membenarkan pilihan penyesuaian tambahan, termasuk:
Sebagai contoh, mari kita ubah suai State bean untuk hanya menyerikan sifat isSet apabila nilainya adalah benar:
@JsonProperty(condition = JsonInclude.Include.NON_DEFAULT) private boolean isSet;
Ini memastikan bahawa harta itu hanya disertakan dalam JSON bersiri apabila ia mempunyai nilai true.
Akhirnya, keputusan untuk menggunakan @JsonProperty didorong oleh keperluan khusus aplikasi. Jika pembangun memerlukan keupayaan untuk menyesuaikan nama hartanah atau menggunakan konfigurasi peringkat hartanah tambahan, menggunakan anotasi ini amat disyorkan.
Atas ialah kandungan terperinci Adakah Anotasi @JsonProperty Diperlukan untuk Pensirilan JSON di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!