Rumah >Java >javaTutorial >Bagaimana untuk Mengkonfigurasi ObjectMapper Spring untuk Mensiri Hanya Elemen Beranotasi @JsonProperty?
Cara Mengkonfigurasi ObjectMapper pada Musim Bunga
Masalah:
Anda mahu mengkonfigurasi ObjectMapper dalam Spring untuk menyirikan hanya elemen yang diberi anotasi dengan @JsonProperty. Walau bagaimanapun, walaupun mengikut arahan yang disyorkan, kelas NumbersOfNewEvents masih mengandungi semua atribut apabila bersiri.
Penjelasan:
Dalam CompanyObjectMapper tersuai, anda telah menetapkan penyemak keterlihatan untuk menyembunyikan semua medan dan getter/setter secara lalai. Ini menghalang ObjectMapper daripada mengakses dan menyerikan medan newAccepts dan openRequests.
Penyelesaian:
Untuk mencapai hasil yang diinginkan, anda boleh menggunakan pendekatan yang lebih disasarkan untuk mengkonfigurasi keterlihatan penyemak. Berikut ialah contoh:
public class CompanyObjectMapper extends ObjectMapper { public CompanyObjectMapper() { super(); SerializationConfig config = getSerializationConfig(); config.withView(Some.class) // Specify which view to use .withVisibility(JsonAutoDetect.Visibility.NONE) .withVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); } }
Konfigurasi ini akan membenarkan sifat dengan anotasi @JsonProperty disiri, sambil mengekalkan medan lain tersembunyi.
Konfigurasi But Musim Bunga:
Jika anda menggunakan Spring Boot dan Jackson 2.4.6 atau lebih tinggi, anda boleh menggunakan yang berikut konfigurasi:
@Configuration public class JacksonConfiguration { @Bean public ObjectMapper objectMapper() { ObjectMapper mapper = new ObjectMapper(); mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); // Enable default typing for polymorphic types mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY); // Allow serialization of fields mapper.configure(MapperFeature.DEFAULT_VIEW_INCLUSION, true); // Enable default view inclusion return mapper; } }
Konfigurasi ini mendayakan penaipan lalai untuk jenis polimorfik, membenarkan penyirian semua medan dan mendayakan pemasukan paparan lalai.
Atas ialah kandungan terperinci Bagaimana untuk Mengkonfigurasi ObjectMapper Spring untuk Mensiri Hanya Elemen Beranotasi @JsonProperty?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!