Rumah >Java >javaTutorial >Bagaimana untuk Mengkonfigurasi ObjectMapper pada Spring untuk Pensirilan dan Penyahserikatan JSON Tersuai?
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:
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)); } }
Sertakan ObjectMapper tersuai dalam Spring's konfigurasi:
<bean>
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>
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; } }
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!