Rumah > Java > javaTutorial > Bagaimana untuk Mengkonfigurasi ObjectMapper pada Spring untuk Pensirilan dan Penyahserikatan JSON Tersuai?

Bagaimana untuk Mengkonfigurasi ObjectMapper pada Spring untuk Pensirilan dan Penyahserikatan JSON Tersuai?

Mary-Kate Olsen
Lepaskan: 2024-12-05 07:15:16
asal
877 orang telah melayarinya

How to Configure ObjectMapper in Spring for Custom JSON Serialization and Deserialization?

Mengkonfigurasi ObjectMapper pada Musim Bunga

Pada Musim Bunga, ObjectMapper boleh dikonfigurasikan untuk memenuhi keperluan khusus. Ini amat berguna apabila anda ingin mengawal kelakuan bersiri dan penyahsirilan data JSON anda.

Satu senario biasa ialah mengecualikan sifat tertentu daripada bersiri melainkan ia diberi anotasi secara eksplisit. Untuk mencapai matlamat ini, kami mengikuti langkah berikut:

  1. Buat ObjectMapper tersuai:

    public class CompanyObjectMapper extends ObjectMapper {
        public CompanyObjectMapper() {
            super();
            setVisibilityChecker(getSerializationConfig()
                    .getDefaultVisibilityChecker()
                    .withCreatorVisibility(JsonAutoDetect.Visibility.NONE)
                    .withFieldVisibility(JsonAutoDetect.Visibility.NONE)
                    .withGetterVisibility(JsonAutoDetect.Visibility.NONE)
                    .withIsGetterVisibility(JsonAutoDetect.Visibility.NONE)
                    .withSetterVisibility(JsonAutoDetect.Visibility.DEFAULT));
        }
    }
    Salin selepas log masuk
  2. Sertakan ObjectMapper tersuai dalam Spring's konfigurasi:

    <bean>
    Salin selepas log masuk
  3. Konfigurasikan Spring MVC untuk menggunakan ObjectMapper tersuai:

    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
                    <property name="objectMapper" ref="jacksonObjectMapper" />
                </bean>
            </list>
        </property>
    </bean>
    Salin selepas log masuk

Walau bagaimanapun, pendekatan ini mungkin tidak berfungsi seperti yang diharapkan jika anda menggunakan Spring versi 3.0.5 dan Jackson 1.8.0. Untuk menyelesaikan isu ini, adalah disyorkan untuk menggunakan konfigurasi berasaskan anotasi berikut dengan Spring Boot dan Jackson 2.4.6 atau lebih baharu:

@Configuration
public class JacksonConfiguration {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true);

        return mapper;
    }
}
Salin selepas log masuk

Konfigurasi ini akan membolehkan ObjectMapper hanya mensiri sifat yang mempunyai @ Anotasi JsonProperty, memenuhi keperluan yang diingini.

Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi ObjectMapper pada Spring untuk Pensirilan dan Penyahserikatan JSON Tersuai?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan