Spring での ObjectMapper の構成
Spring アプリケーションでは、ObjectMapper は JSON データをシリアル化および逆シリアル化するための重要なコンポーネントです。 @JsonProperty アノテーションが付けられたプロパティのみをシリアル化するなど、特定の要件を満たすように ObjectMapper をカスタマイズできます。
これを実現するには、最初のステップとして、Jackson が提供する基本 ObjectMapper クラスを拡張するカスタム ObjectMapper クラスを作成します。デフォルトの可視性チェッカーをオーバーライドして、アノテーションのないプロパティを除外します:
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)); } }
次に、カスタム ObjectMapper Bean を Spring 構成ファイル (servlet.xml) に登録します:
<bean>
最後に、カスタムを使用するようにアノテーション駆動型 MVC フレームワークを構成します。 ObjectMapper:
<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>
提供されているサンプル コードでは、NumbersOfNewEvents クラスに 2 つのパブリック属性が含まれています:
public class NumbersOfNewEvents implements StatusAttribute { public Integer newAccepts; public Integer openRequests; // ... }
ただし、@JsonProperty:
@JsonProperty public Integer newAccepts;
以上が@JsonProperty アノテーション付きプロパティのみをシリアル化するように Spring の ObjectMapper をカスタマイズする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。