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
DDDasal
2024-11-26 01:11:101008semak imbas

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

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

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

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

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:
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