Rumah > Java > javaTutorial > Bagaimana untuk Mencipta dan Mendaftar Pensiri Tersuai di Jackson untuk Pensirian JSON yang Disesuaikan?

Bagaimana untuk Mencipta dan Mendaftar Pensiri Tersuai di Jackson untuk Pensirian JSON yang Disesuaikan?

DDD
Lepaskan: 2024-11-26 01:11:10
asal
1048 orang telah melayarinya

How to Create and Register Custom Serializers in Jackson for Tailored JSON Serialization?

Cara Menggunakan Penyeri Tersuai dalam Jackson

Di Jackson, penggunaan penyeri tersuai membolehkan siri JSON yang disesuaikan untuk kelas tertentu.

Mencipta Adat Serializer

Untuk mensirikan objek dari kelas Item, buat serializer tersuai:

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.createdBy.id);
        jgen.writeEndObject();
    }
}
Salin selepas log masuk

Mendaftarkan Serializer Tersuai

Selepas mencipta serializer, ia perlu didaftarkan dengan Jackson:

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

Pendaftaran Jenis Pengendalian

Jackson menimbulkan ralat kerana pengendalian jenis hilang. Selesaikan perkara ini dengan mengendalikan jenis secara eksplisit:

public class ItemSerializer extends JsonSerializer<Item> {

    @Override
    public void serialize(Item value, JsonGenerator jgen,
                          SerializerProvider provider) throws IOException,
                                                             JsonProcessingException {
        // ... (Serialization code)
    }

    @Override
    public Class<Item> handledType() {
        return Item.class;
    }
}
Salin selepas log masuk

Bersiri dengan Jackson

Dengan penyeri tersuai yang didaftarkan, sirikan objek Item seperti biasa:

StringWriter writer = new StringWriter();

try {
    mapper.writeValue(writer, myItem);
} catch (JsonGenerationException | JsonMappingException | IOException e) {
    e.printStackTrace();
}
Salin selepas log masuk

Contoh untuk Pengguna Pensirian

Untuk mensirikan objek Pengguna dengan strategi penyirian tersuai, buat penyiri yang serupa dan daftarkannya dengan Jackson.

Ingat, penyiri tersuai memberikan fleksibiliti dalam mengawal perwakilan JSON objek anda , memenuhi keperluan siri khusus.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta dan Mendaftar Pensiri Tersuai di Jackson untuk Pensirian JSON yang Disesuaikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan