Rumah  >  Artikel  >  Java  >  Bagaimanakah anotasi dalam perpustakaan Jackson mengawal pensirilan dan penyahsirilan JSON?

Bagaimanakah anotasi dalam perpustakaan Jackson mengawal pensirilan dan penyahsirilan JSON?

王林
王林asal
2024-05-06 22:09:02889semak imbas

Anotasi dalam perpustakaan Jackson mengawal pensirilan dan penyahserilangan JSON: Pensirilan: @JsonIgnore: Abaikan sifat @JsonProperty: Tentukan nama @JsonGetter: Gunakan kaedah get @JsonSetter: Gunakan kaedah set Penyahserikatan: @JsonIgnoreProperties: Abaikan sifat @JsonProperty: Tentukan nama @ JsonCreator: Gunakan pembina @JsonDeserialize: Logik tersuai

Bagaimanakah anotasi dalam perpustakaan Jackson mengawal pensirilan dan penyahsirilan JSON?

Gunakan anotasi untuk mengawal pensirilan JSON dan penyahsirilan dalam perpustakaan Jackson

Pengenalan

Perpustakaan Jackson yang popular untuk data JSON. Anotasi memainkan peranan penting dalam pustaka Jackson, yang membolehkan kami mengawal proses pensirilan dan penyahsirian JSON.

Anotasi siri

  • @JsonAbaikan: Abaikan sifat atau kaedah supaya ia tidak disertakan dalam output JSON.
  • @JsonProperty: Nyatakan nama harta dalam output JSON.
  • @JsonGetter: Dapatkan nilai yang dikembalikan apabila kaedah dipanggil dan bukannya mengakses harta secara langsung.
  • @JsonSetter: Tetapkan nilai harta apabila kaedah penetap dipanggil, dan bukannya menetapkannya secara langsung.

Anotasi penyahserialisasian

  • @JsonIgnoreProperties: Abaikan sifat yang dinyatakan dalam input JSON.
  • @JsonProperty: Nyatakan nama harta dalam input JSON dan petakannya pada sifat atau kaedah.
  • @JsonCreator: Buat objek menggunakan pembina bukan lalai dan bukannya menggunakan kaedah penetap.
  • @JsonDeserialize: Nyatakan logik penyahserikatan tersuai, anda boleh menggunakan penukar atau pengendali jenis tersuai.

Kes praktikal

Berikut ialah kelas contoh yang menunjukkan cara menggunakan anotasi Jackson:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Person {

    private String name;

    @JsonProperty("age")
    private int yearsOld;

    @JsonGetter("education")
    public String getEducation() {
        return "College";
    }

    @JsonSetter("years_old")
    public void setAge(int yearsOld) {
        this.yearsOld = yearsOld;
    }
}

Dalam contoh ini:

    @JsonIgnoreProperties(ignorecodeUnknown> Properties Abaikan) yang tidak wujud dalam kelas.
  • @JsonIgnoreProperties(ignoreUnknown = true) 忽略JSON输入中类中不存在的属性。
  • @JsonProperty("age") 指定 yearsOld 属性在JSON输出中的名称为 "age"。
  • @JsonGetter("education") 通过获取方法 "getEducation" 返回 "education" 属性的值。
  • @JsonSetter("years_old")@JsonProperty("age") menentukan bahawa nama harta yearsOld dalam output JSON ialah "umur".
@JsonGetter("education") Mengembalikan nilai atribut "education" melalui kaedah get "getEducation".

@JsonSetter("years_old") Tetapkan nilai atribut "yearsOld" melalui kaedah tetapan "setAge". 🎜🎜🎜Siri dan penyahserikatan boleh dilakukan menggunakan perpustakaan Jackson melalui: 🎜
// 序列化
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(person);

// 反序列化
Person person = mapper.readValue(json, Person.class);

Atas ialah kandungan terperinci Bagaimanakah anotasi dalam perpustakaan Jackson mengawal pensirilan dan penyahsirilan JSON?. 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