Rumah >Java >javaTutorial >Bagaimana untuk Menyesuaikan ObjectMapper Spring untuk Mensiri Hanya @JsonProperty Annotated Properties?
Mengkonfigurasi ObjectMapper dalam Spring
Dalam aplikasi Spring, ObjectMapper ialah komponen penting untuk mensiri dan menyahsiri data JSON. Anda boleh menyesuaikan ObjectMapper untuk memenuhi keperluan khusus, seperti hanya mensiri sifat yang dianotasi dengan @JsonProperty.
Untuk mencapai ini, langkah pertama ialah mencipta kelas ObjectMapper tersuai yang melanjutkan kelas ObjectMapper asas yang disediakan oleh Jackson. Gantikan penyemak keterlihatan lalai untuk mengecualikan sifat tidak beranotasi:
public class MyCustomObjectMapper extends ObjectMapper { public MyCustomObjectMapper() { super(); setVisibilityChecker(getSerializationConfig() .getDefaultVisibilityChecker() .withCreatorVisibility(JsonAutoDetect.Visibility.NONE) .withFieldVisibility(JsonAutoDetect.Visibility.NONE) .withGetterVisibility(JsonAutoDetect.Visibility.NONE) .withIsGetterVisibility(JsonAutoDetect.Visibility.NONE) .withSetterVisibility(JsonAutoDetect.Visibility.DEFAULT)); } }
Seterusnya, daftarkan kacang ObjectMapper tersuai dalam fail konfigurasi Spring (servlet.xml):
<bean>
Akhir sekali, konfigurasikan rangka kerja MVC dipacu anotasi 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="customObjectMapper" /> </bean> </list> </property> </bean>
Dalam kod contoh yang disediakan, kelas NumbersOfNewEvents mengandungi dua atribut awam:
public class NumbersOfNewEvents implements StatusAttribute { public Integer newAccepts; public Integer openRequests; // ... }
Walau bagaimanapun, hanya atribut newAccepts dianotasi dengan @JsonProperty:
@JsonProperty public Integer newAccepts;
Dengan mengkonfigurasi ObjectMapper seperti yang diterangkan di atas , hanya atribut newAccepts harus disiri apabila objek NumbersOfNewEvents ditukar kepada JSON. Ini kerana ObjectMapper tersuai akan mengecualikan sifat tidak beranotasi semasa penyirian.
Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan ObjectMapper Spring untuk Mensiri Hanya @JsonProperty Annotated Properties?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!