クラス JacksonJsonView
- 実装されているすべてのインターフェース:
Aware, BeanNameAware, ApplicationContextAware, ServletContextAware, View
Spring MVC
View は、Jackson 3 JsonMapper を使用して現在のリクエストのモデルを直列化することにより、JSON コンテンツをレンダリングします。 デフォルトでは、モデルマップのコンテンツ全体(フレームワーク固有のクラスを除く)は JSON としてエンコードされます。モデルに含まれるキーが 1 つのみの場合は、setExtractValueFromSingleKeyModel(boolean) を介して JSON のみとしてエンコードされた抽出することができます
次の特殊なモデルエントリがサポートされています。
com.fasterxml.jackson.annotation.JsonViewキーと、JSON ビューのクラス名を値として持つ JSON ビュー。tools.jackson.databind.ser.FilterProviderキーとフィルタープロバイダークラス名を値として持つフィルタープロバイダー。
- 導入:
- 7.0
- 作成者:
- Sebastien Deleuze
フィールドのサマリー
フィールドクラス AbstractJacksonView から継承されたフィールド
FILTER_PROVIDER_HINT, JSON_VIEW_HINT, updateContentLengthクラス ApplicationObjectSupport から継承されたフィールド
loggerインターフェース View から継承されたフィールド
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPEコンストラクターの概要
コンストラクターコンストラクター説明MapperBuilder.findModules(ClassLoader)によって検出されたJacksonModuleでカスタマイズされたJsonMapperで新しいインスタンスを構築し、コンテンツ型をapplication/jsonに設定します。JacksonJsonView(tools.jackson.databind.json.JsonMapper mapper) 提供されたJsonMapperを使用して新しいインスタンスを構築し、コンテンツ型を "application/json" に設定します。JacksonJsonView(tools.jackson.databind.json.JsonMapper.Builder builder) MapperBuilder.findModules(ClassLoader)によって検出されたJacksonModuleでカスタマイズされた提供されたJsonMapper.Builderを使用して新しいインスタンスを構築し、コンテンツ型をapplication/jsonに設定します。メソッドのサマリー
修飾子と型メソッド説明protected ObjectSEfilterModel(MapSE<StringSE, ObjectSE> model, jakarta.servlet.http.HttpServletRequest request) 指定されたモデルから不要な属性を除外します。このビューによってレンダリングされるモデルの属性を返します。voidsetExtractValueFromSingleKeyModel(boolean extractValueFromSingleKeyModel) 単一の属性を含むモデルをマップとして直列化するか、モデルから単一の値を抽出して直接直列化するかを設定します。voidsetJsonPrefix(StringSE jsonPrefix) このビューの JSON 出力に使用するカスタムプレフィックスを指定します。voidsetModelKey(StringSE modelKey) このビューによってレンダリングされるモデルの属性を設定します。voidsetModelKeys(@Nullable SetSE<StringSE> modelKeys) このビューによってレンダリングされるモデルの属性を設定します。voidsetPrefixJson(boolean prefixJson) このビューによる JSON 出力に接頭辞")]}', "を付ける必要があるかどうかを示します。protected voidwritePrefix(tools.jackson.core.JsonGenerator generator, ObjectSE object) メインコンテンツの前にプレフィックスを書きます。クラス AbstractJacksonView から継承されたメソッド
getEncoding, prepareResponse, renderMergedOutputModel, setDisableCaching, setEncoding, setUpdateContentLength, writeContent, writeSuffixクラス AbstractView から継承されたメソッド
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, formatViewName, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, setResponseContentType, toString, writeToResponseクラス WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
フィールドの詳細
DEFAULT_CONTENT_TYPE
デフォルトのコンテンツ型: "application/json".AbstractView.setContentType(String)を通じてオーバーライド可能です。- 関連事項:
コンストラクターの詳細
JacksonJsonView
public JacksonJsonView()MapperBuilder.findModules(ClassLoader)によって検出されたJacksonModuleでカスタマイズされたJsonMapperで新しいインスタンスを構築し、コンテンツ型をapplication/jsonに設定します。JacksonJsonView
public JacksonJsonView(tools.jackson.databind.json.JsonMapper.Builder builder) MapperBuilder.findModules(ClassLoader)によって検出されたJacksonModuleでカスタマイズされた提供されたJsonMapper.Builderを使用して新しいインスタンスを構築し、コンテンツ型をapplication/jsonに設定します。- 関連事項:
JacksonJsonView
public JacksonJsonView(tools.jackson.databind.json.JsonMapper mapper) 提供されたJsonMapperを使用して新しいインスタンスを構築し、コンテンツ型を "application/json" に設定します。- 関連事項:
メソッドの詳細
setJsonPrefix
このビューの JSON 出力に使用するカスタムプレフィックスを指定します。デフォルトはなしです。
- 関連事項:
setPrefixJson
public void setPrefixJson(boolean prefixJson) このビューによる JSON 出力に接頭辞")]}', "を付ける必要があるかどうかを示します。デフォルトは
falseです。この方法で JSON 文字列のプレフィックスを使用すると、JSON ハイジャックを防ぐことができます。プレフィックスは、文字列をスクリプトとして構文的に無効にして、ハイジャックできないようにします。このプレフィックスは、文字列を JSON として解析する前に削除する必要があります。
- 関連事項:
setModelKey
クラスからコピーされた説明:AbstractJacksonViewこのビューによってレンダリングされるモデルの属性を設定します。設定すると、他のすべてのモデル属性は無視されます。
- 次で指定:
- クラス
AbstractJacksonViewのsetModelKey
setModelKeys
getModelKeys
setExtractValueFromSingleKeyModel
public void setExtractValueFromSingleKeyModel(boolean extractValueFromSingleKeyModel) 単一の属性を含むモデルをマップとして直列化するか、モデルから単一の値を抽出して直接直列化するかを設定します。このフラグを設定することの効果は、
JacksonJsonHttpMessageConverterを@ResponseBodyリクエスト処理メソッドとともに使用することに似ています。デフォルトは
falseです。filterModel
protected ObjectSE filterModel(MapSE<StringSE, ObjectSE> model, jakarta.servlet.http.HttpServletRequest request) 指定されたモデルから不要な属性を除外します。戻り値は、別の
MapSE または単一値オブジェクトのいずれかになります。デフォルトの実装では、
BindingResultインスタンスと、modelKeysプロパティに含まれていないエントリが削除されます。- 次で指定:
- クラス
AbstractJacksonViewのfilterModel - パラメーター:
model-AbstractJacksonView.renderMergedOutputModel(Map, HttpServletRequest, HttpServletResponse)に渡されるモデルrequest- 現在の HTTP リクエスト- 戻り値:
- レンダリングされる値
writePrefix
protected void writePrefix(tools.jackson.core.JsonGenerator generator, ObjectSE object) throws IOExceptionSE クラスからコピーされた説明:AbstractJacksonViewメインコンテンツの前にプレフィックスを書きます。- オーバーライド:
- クラス
AbstractJacksonViewのwritePrefix - パラメーター:
generator- コンテンツを書くために使用するジェネレーターobject- 出力メッセージに書き込むオブジェクト- 例外:
IOExceptionSE