Rumah > Java > javaTutorial > Bagaimana untuk Mengkonfigurasi ObjectMapper Spring untuk Mensiri Hanya Medan Beranotasi @JsonProperty?

Bagaimana untuk Mengkonfigurasi ObjectMapper Spring untuk Mensiri Hanya Medan Beranotasi @JsonProperty?

Susan Sarandon
Lepaskan: 2024-12-07 14:02:17
asal
688 orang telah melayarinya

How to Configure Spring's ObjectMapper to Serialize Only @JsonProperty Annotated Fields?

Mengkonfigurasi ObjectMapper pada Musim Bunga: Hadkan Pensiri Medan

Untuk mengkonfigurasi ObjectMapper supaya bersiri hanya medan beranotasi dengan @JsonProperty, pertimbangkan pendekatan berikut:

1. Buat ObjectMapper Tersuai

public class CustomObjectMapper extends ObjectMapper {
    public CustomObjectMapper() {
        super();
        setVisibility(Visibility.NONE).enable(Visibility.NON_EMPTY);
    }
}
Salin selepas log masuk

ObjectMapper tersuai ini melumpuhkan siri medan tidak beranotasi dan hanya termasuk medan yang nilainya bukan nol.

2. Daftarkan ObjectMapper Tersuai pada Musim Bunga

Dalam servlet.xml anda, daftarkan ObjectMapper tersuai seperti berikut:

<bean>
Salin selepas log masuk

3. Kemas kini Konfigurasi Berasaskan Anotasi

Pastikan kelas @Configuration anda mendaftarkan CountingJacksonHttpMessageConverter tersuai:

@Configuration
public class JacksonConfiguration {

    @Bean
    public MappingJacksonHttpMessageConverter jsonConverter() {
        MappingJacksonHttpMessageConverter converter = new MappingJacksonHttpMessageConverter();
        converter.setObjectMapper(jacksonObjectMapper());
        return converter;
    }
}
Salin selepas log masuk

4. Pastikan Ketergantungan Versi Betul

Sahkan bahawa anda menggunakan versi Jackson yang serasi. Dalam kes ini, Jackson 2.x disyorkan untuk digunakan dengan Spring.

5. Sahkan Tidak Termasuk Anotasi Jackson Lalai

Pastikan anotasi Jackson lalai dikecualikan daripada pengesanan keterlihatan dengan mengatasi kaedah setVisibility dalam ObjectMapper tersuai anda.

Pertimbangan Tambahan:

  • Pendekatan ini hanya menyerikan medan dianotasi dengan @JsonProperty dan bukan yang ditandakan dengan anotasi lain (mis., @JsonSerialize).
  • Perhatikan bahawa mengecualikan medan daripada bersiri mungkin menjejaskan kefungsian komponen lain yang bergantung pada kelakuan lalai (cth., ketekunan, pengesahan) .
  • Untuk penyesuaian bersiri yang lebih lanjut, rujuk Jackson dokumentasi.

Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi ObjectMapper Spring untuk Mensiri Hanya Medan Beranotasi @JsonProperty?. 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