Rumah > Java > javaTutorial > Adakah Anotasi @JsonProperty Diperlukan untuk Pensirilan JSON di Java?

Adakah Anotasi @JsonProperty Diperlukan untuk Pensirilan JSON di Java?

Barbara Streisand
Lepaskan: 2024-11-12 08:02:02
asal
275 orang telah melayarinya

Is the @JsonProperty Annotation Necessary for JSON Serialization in Java?

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;
    }

}
Salin selepas log masuk

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)
    }
}
Salin selepas log masuk

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:

  • Kawalan siri: Mengehadkan siri sifat tertentu berdasarkan syarat.
  • Kawalan penyahserilan : Mengabaikan sifat semasa penyahsirilan atau menggunakan transformasi tersuai.
  • Kawalan kemasukan: Menentukan masa sesuatu harta harus disertakan atau dikecualikan semasa pensirilan dan penyahserikan.

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;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan