ホームページ >Java >&#&チュートリアル >カスタム JSON シリアル化および逆シリアル化のために Spring で ObjectMapper を構成するにはどうすればよいですか?
Spring では、特定の要件に合わせて ObjectMapper を構成できます。これは、JSON データのシリアル化と逆シリアル化の動作を制御する場合に特に便利です。
一般的なシナリオの 1 つは、明示的に注釈が付けられていない限り、特定のプロパティをシリアル化から除外することです。これを実現するには、次の手順に従います:
カスタム ObjectMapper を作成します:
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)); } }
カスタム ObjectMapper を Spring のconfiguration:
<bean>
カスタム ObjectMapper を使用するように Spring MVC を構成します:
<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>
ただし、Spring バージョン 3.0.5 および 3.0.5 を使用している場合、このアプローチは期待どおりに機能しない可能性があります。ジャクソン1.8.0。この問題を解決するには、Spring Boot および Jackson 2.4.6 以降で次のアノテーションベースの構成を使用することをお勧めします:
@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; } }
この構成により、ObjectMapper は @ を持つプロパティのみをシリアル化できます。 JsonProperty アノテーション。必要な要件を満たします。
以上がカスタム JSON シリアル化および逆シリアル化のために Spring で ObjectMapper を構成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。