public abstract class AbstractJackson2HttpMessageConverter extends AbstractGenericHttpMessageConverter<java.lang.Object>
HttpMessageConverter 実装の抽象基本クラス。Spring 5.0 の時点で、Jackson 2.9 以降と互換性があります。
MappingJackson2HttpMessageConverter| 修飾子と型 | フィールドと説明 |
|---|---|
static java.nio.charset.Charset | DEFAULT_CHARSET コンバーターが使用するデフォルトの文字セット。 |
protected ObjectMapper | objectMapper |
logger| 修飾子 | コンストラクターと説明 |
|---|---|
protected | AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper) |
protected | AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType... supportedMediaTypes) |
protected | AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType supportedMediaType) |
| 修飾子と型 | メソッドと説明 |
|---|---|
boolean | canRead(java.lang.Class<?> clazz, MediaType mediaType) この実装は、指定されたクラスがサポートされているかどうか、およびサポートされているメディア型 に指定されたメディア型が 含まれているかどうかをチェックします。 |
boolean | canRead(java.lang.reflect.Type type, java.lang.Class<?> contextClass, MediaType mediaType) 指定された型がこのコンバーターで読み取れるかどうかを示します。 |
boolean | canWrite(java.lang.Class<?> clazz, MediaType mediaType) |
protected java.lang.Long | getContentLength(java.lang.Object object, MediaType contentType) 指定された型のコンテンツの長さを返します。 |
protected MediaType | getDefaultContentType(java.lang.Object object) 指定された型のデフォルトのコンテンツ型を返します。 |
protected JavaType | getJavaType(java.lang.reflect.Type type, java.lang.Class<?> contextClass) 指定された型とコンテキストクラスの Jackson JavaType を返します。 |
protected JsonEncoding | getJsonEncoding(MediaType contentType) 指定されたコンテンツ型に使用する JSON エンコーディングを決定します。 |
ObjectMapper | getObjectMapper() このビューの基になる ObjectMapper を返します。 |
protected void | logWarningIfNecessary(java.lang.reflect.Type type, java.lang.Throwable cause)ObjectMapper.canDeserialize(com.fasterxml.jackson.databind.JavaType)/ObjectMapper.canSerialize(java.lang.Class<?>) チェックからの特定の例外をログに記録するかどうかを決定します。 |
java.lang.Object | read(java.lang.reflect.Type type, java.lang.Class<?> contextClass, HttpInputMessage inputMessage) 指定された入力メッセージから指定された型のオブジェクトを読み取り、それを返します。 |
protected java.lang.Object | readInternal(java.lang.Class<?> clazz, HttpInputMessage inputMessage) 実際のオブジェクトを読み取る抽象テンプレートメソッド。 |
void | setObjectMapper(ObjectMapper objectMapper) このビューの ObjectMapper を設定します。 |
void | setPrettyPrint(boolean prettyPrint)JSON を記述するときに DefaultPrettyPrinter を使用するかどうか。 |
protected void | writeInternal(java.lang.Object object, java.lang.reflect.Type type, HttpOutputMessage outputMessage) 実際の本文を書き込む抽象テンプレートメソッド。 |
protected void | writePrefix(JsonGenerator generator, java.lang.Object object) メインコンテンツの前にプレフィックスを書きます。 |
protected void | writeSuffix(JsonGenerator generator, java.lang.Object object) メインコンテンツの後にサフィックスを記述します。 |
canWrite, supports, write, writeInternaladdDefaultHeaders, canRead, canWrite, getDefaultCharset, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, writeclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetSupportedMediaTypes, read, writepublic static final java.nio.charset.Charset DEFAULT_CHARSET
protected ObjectMapper objectMapper
protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper)
protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType supportedMediaType)
protected AbstractJackson2HttpMessageConverter(ObjectMapper objectMapper, MediaType... supportedMediaTypes)
public void setObjectMapper(ObjectMapper objectMapper)
ObjectMapper を設定します。設定しない場合、デフォルトの ObjectMapper が使用されます。 カスタム構成の ObjectMapper を設定することは、JSON 直列化プロセスをさらに制御する 1 つの方法です。例: 特定の型のカスタムシリアライザーを提供する拡張 SerializerFactory を構成できます。直列化プロセスを改善するためのもう 1 つのオプションは、Jackson が提供するアノテーションを直列化する型に使用することです。この場合、カスタム構成の ObjectMapper は不要です。
public ObjectMapper getObjectMapper()
ObjectMapper を返します。public void setPrettyPrint(boolean prettyPrint)
DefaultPrettyPrinter を使用するかどうか。これは、次のように ObjectMapper をセットアップするためのショートカットです。ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.INDENT_OUTPUT, true); converter.setObjectMapper(mapper);
public boolean canRead(java.lang.Class<?> clazz,
@Nullable
MediaType mediaType)AbstractHttpMessageConverterHttpMessageConverter<java.lang.Object> 内の canRead AbstractHttpMessageConverter<java.lang.Object> の canRead clazz - 読み込み可能性をテストするクラス mediaType - 読み取るメディア型(指定しない場合は null にできます); 通常、Content-Type ヘッダーの値。true。それ以外の場合は false public boolean canRead(java.lang.reflect.Type type,
@Nullable
java.lang.Class<?> contextClass,
@Nullable
MediaType mediaType)GenericHttpMessageConverterHttpMessageConverter.canRead(Class, MediaType) と同じチェックを実行し、ジェネリクス型に関連する追加のチェックを実行する必要があります。GenericHttpMessageConverter<java.lang.Object> 内の canRead AbstractGenericHttpMessageConverter<java.lang.Object> の canRead type - 読みやすさをテストするための(潜在的に汎用)型 contextClass - ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (null にすることができます)mediaType - 読み取るメディア型は、指定しない場合は null にできます。通常、Content-Type ヘッダーの値。true。それ以外の場合は false public boolean canWrite(java.lang.Class<?> clazz,
@Nullable
MediaType mediaType)AbstractHttpMessageConverterHttpMessageConverter<java.lang.Object> 内の canWrite AbstractHttpMessageConverter<java.lang.Object> の canWrite clazz - 書き込み可能性をテストするクラス mediaType - 書き込むメディア型(指定しない場合は null にすることができます); 通常、Accept ヘッダーの値。true。それ以外の場合は false protected void logWarningIfNecessary(java.lang.reflect.Type type,
@Nullable
java.lang.Throwable cause)ObjectMapper.canDeserialize(com.fasterxml.jackson.databind.JavaType)/ObjectMapper.canSerialize(java.lang.Class<?>) チェックからの特定の例外をログに記録するかどうかを決定します。type - Jackson が(非)直列化可能性についてテストしたクラス cause - 評価する Jackson 投げ例外 (通常、JsonMappingException )protected java.lang.Object readInternal(java.lang.Class<?> clazz,
HttpInputMessage inputMessage)
throws java.io.IOException,
HttpMessageNotReadableExceptionAbstractHttpMessageConverterAbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage) から呼び出されます。AbstractHttpMessageConverter<java.lang.Object> の readInternal clazz - 返すオブジェクトの型 inputMessage - 読み込む HTTP 入力メッセージ java.io.IOException - I/O エラーの場合 HttpMessageNotReadableException - 変換エラーの場合 public java.lang.Object read(java.lang.reflect.Type type,
@Nullable
java.lang.Class<?> contextClass,
HttpInputMessage inputMessage)
throws java.io.IOException,
HttpMessageNotReadableExceptionGenericHttpMessageConvertertype - 返される(潜在的に汎用の)型のオブジェクト。この型は、このインターフェースの canRead メソッドに事前に渡されている必要があります。このメソッドは true を返している必要があります。contextClass - ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (null にすることができます)inputMessage - 読み込む HTTP 入力メッセージ java.io.IOException - I/O エラーの場合 HttpMessageNotReadableException - 変換エラーの場合 protected void writeInternal(java.lang.Object object,
@Nullable
java.lang.reflect.Type type,
HttpOutputMessage outputMessage)
throws java.io.IOException,
HttpMessageNotWritableExceptionAbstractGenericHttpMessageConverterAbstractGenericHttpMessageConverter.write(T, java.lang.reflect.Type, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage) から呼び出されます。AbstractGenericHttpMessageConverter<java.lang.Object> の writeInternal object - 出力メッセージに書き込むオブジェクト type - 書き込むオブジェクトの型 (null の場合があります)outputMessage - 書き込む HTTP 出力メッセージ java.io.IOException - I/O エラーの場合 HttpMessageNotWritableException - 変換エラーの場合 protected void writePrefix(JsonGenerator generator, java.lang.Object object) throws java.io.IOException
generator - コンテンツの書き込みに使用するジェネレーター。object - 出力メッセージに書き込むオブジェクト。java.io.IOExceptionprotected void writeSuffix(JsonGenerator generator, java.lang.Object object) throws java.io.IOException
generator - コンテンツの書き込みに使用するジェネレーター。object - 出力メッセージに書き込むオブジェクト。java.io.IOExceptionprotected JavaType getJavaType(java.lang.reflect.Type type, @Nullable java.lang.Class<?> contextClass)
JavaType を返します。type - Jackson JavaType を返す汎用型 contextClass - ターゲット型のコンテキストクラス。たとえば、ターゲット型がメソッドシグネチャーに表示されるクラス (null にすることができます)protected JsonEncoding getJsonEncoding(@Nullable MediaType contentType)
contentType - 呼び出し元によってリクエストされたメディア型 null ではない)@Nullable protected MediaType getDefaultContentType(java.lang.Object object) throws java.io.IOException
AbstractHttpMessageConverterAbstractHttpMessageConverter.write(T, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage) が呼び出されたときに呼び出されます。 デフォルトでは、supportedMediaTypes プロパティの最初の要素があれば、それを返します。サブクラスでオーバーライドできます。
AbstractHttpMessageConverter<java.lang.Object> の getDefaultContentType object - コンテンツ型を返す型 null java.io.IOExceptionprotected java.lang.Long getContentLength(java.lang.Object object,
@Nullable
MediaType contentType)
throws java.io.IOExceptionAbstractHttpMessageConverter デフォルトでは、これは null を返します。これは、コンテンツの長さが不明であることを意味します。サブクラスでオーバーライドできます。
AbstractHttpMessageConverter<java.lang.Object> の getContentLength object - コンテンツの長さを返す型 null java.io.IOException