Rumah > Java > javaTutorial > Bagaimana Menggunakan Pensiri Tersuai dengan Jackson untuk Pemprosesan JSON yang Cekap di Java?

Bagaimana Menggunakan Pensiri Tersuai dengan Jackson untuk Pemprosesan JSON yang Cekap di Java?

Linda Hamilton
Lepaskan: 2024-11-27 04:08:09
asal
845 orang telah melayarinya

How to Use Custom Serializers with Jackson for Efficient JSON Processing in Java?

Menggunakan Serializer Tersuai dengan Jackson

Jackson ialah perpustakaan pemprosesan JSON yang popular di Java yang terkenal dengan kefleksibelan dan prestasinya. Untuk mengendalikan keperluan bersiri khusus, anda boleh menggunakan penyeri tersuai. Artikel ini menyediakan panduan langkah demi langkah untuk mencipta dan menggunakan penyeri bersiri tersuai dengan Jackson.

Pertimbangkan senario di mana anda mempunyai dua kelas Java, Pengguna dan Item. Anda mahu mensirikan objek Item kepada JSON, menyatakan peraturan pesiri tersuai untuk Pengguna dan Item.

Untuk mencipta penyeri tersuai untuk Item, anda boleh menentukan kelas yang memanjangkan JsonSerializer. Dalam penyeri ini, ganti kaedah bersiri untuk menulis output JSON yang dikehendaki. Sebagai contoh, anda boleh mentakrifkan ItemSerializer seperti yang ditunjukkan di bawah:

public class ItemSerializer extends JsonSerializer<Item> {

    @Override
    public void serialize(Item value, JsonGenerator jgen,
            SerializerProvider provider) throws IOException,
            JsonProcessingException {
        jgen.writeStartObject();
        jgen.writeNumberField("id", value.id);
        jgen.writeNumberField("itemNr", value.itemNr);
        jgen.writeNumberField("createdBy", value.user.id);
        jgen.writeEndObject();
    }

}
Salin selepas log masuk

Walau bagaimanapun, mendaftarkan serializer tersuai secara langsung mungkin membawa kepada ralat yang anda hadapi. Sebaliknya, anda harus mendaftarkannya menggunakan SimpleModule:

ObjectMapper mapper = new ObjectMapper();
SimpleModule simpleModule = new SimpleModule("SimpleModule", new Version(1,0,0,null));
simpleModule.addSerializer(new ItemSerializer());
mapper.registerModule(simpleModule);
Salin selepas log masuk

Akhir sekali, anda boleh menggunakan ObjectMapper untuk mensiri objek Item anda kepada JSON, menggunakan peraturan pesiri tersuai.

Sebagai alternatif, untuk pengendalian Medan tarikh dalam objek Java anda, anda boleh mencipta penyeri tersuai seperti ini:

public class CustomDateSerializer extends SerializerBase<Date> {

    public CustomDateSerializer() {
        super(Date.class, true);
    }

    @Override
    public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonProcessingException {
        SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd yyyy HH:mm:ss 'GMT'ZZZ (z)");
        String format = formatter.format(value);
        jgen.writeString(format);
    }

}
Salin selepas log masuk

Oleh menganotasi medan Tarikh dengan @JsonSerialize(menggunakan = CustomDateSerializer.class), penyiaran tersuai akan digunakan secara automatik.

Atas ialah kandungan terperinci Bagaimana Menggunakan Pensiri Tersuai dengan Jackson untuk Pemprosesan JSON yang Cekap 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