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

Adakah Anotasi @JsonProperty Diperlukan untuk Pensirilan JSON di Java?

Barbara Streisand
Barbara Streisandasal
2024-11-12 08:02:02178semak imbas

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

}

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:

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

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!

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