Rumah > Java > javaTutorial > Bagaimana untuk Mencapai Nama Harta Berbeza untuk Pensirian dan Penyahserikatan dengan Jackson?

Bagaimana untuk Mencapai Nama Harta Berbeza untuk Pensirian dan Penyahserikatan dengan Jackson?

Linda Hamilton
Lepaskan: 2024-10-26 05:52:30
asal
542 orang telah melayarinya

How to Achieve Different Property Names for Serialization and Deserialization with Jackson?

Pensirilan/Penyahserikatan JSON dengan Nama Harta Berbeza

Perpustakaan Jackson menawarkan kefleksibelan untuk menentukan nama yang berbeza bagi sesuatu harta semasa pensirilan dan penyahseririan. Pertimbangkan senario berikut:

Anda mempunyai kelas bernama "Koordinat" dengan medan "merah". Semasa penyahserikatan daripada JSON, anda mahu medan ini dipetakan kepada nama sifat "merah". Walau bagaimanapun, semasa penyirian, anda mahu nama sifat menjadi "r".

Penyelesaian

Untuk mencapai ini, anda boleh menggunakan anotasi @JsonProperty bersama-sama dengan kaedah yang berbeza nama untuk getter dan setter:

public class Coordinates {
    private int red;

    @JsonProperty("r")
    public int getRed() {
        return red;
    }

    @JsonProperty("red")
    public void setRed(int red) {
        this.red = red;
    }
}
Salin selepas log masuk

Dengan menggunakan nama kaedah yang berbeza untuk getter dan setter, Jackson mengiktirafnya sebagai sifat yang berbeza. Semasa penyahserikatan, ia memetakan sifat JSON "merah" kepada penetap dengan anotasi @JsonProperty("merah"). Semasa penyirian, ia menggunakan pengambil dengan anotasi @JsonProperty("r") untuk mendapatkan semula nilai dan mensirikannya sebagai sifat "r".

Contoh

Untuk menggambarkan tingkah laku ini, pertimbangkan kod ujian berikut:

Coordinates c = new Coordinates();
c.setRed(5);

ObjectMapper mapper = new ObjectMapper();
System.out.println("Serialization: " + mapper.writeValueAsString(c));

Coordinates r = mapper.readValue("{\"red\":25}", Coordinates.class);
System.out.println("Deserialization: " + r.getRed());
Salin selepas log masuk

Output:

Serialization: {"r":5}
Deserialization: 25
Salin selepas log masuk

Seperti yang anda lihat, nama sifat "merah" digunakan semasa penyahsiran, manakala nama sifat "r" digunakan semasa pensirilan.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Nama Harta Berbeza untuk Pensirian dan Penyahserikatan dengan Jackson?. 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