クラス JacksonJsonView
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、ApplicationContextAware
、ServletContextAware
、View
Spring MVC
View
は、Jackson 3 ObjectMapper
を使用して現在のリクエストのモデルをシリアライズすることで JSON コンテンツをレンダリングします。 デフォルトでは、モデルマップのコンテンツ全体(フレームワーク固有のクラスを除く)は JSON としてエンコードされます。モデルに含まれるキーが 1 つのみの場合は、setExtractValueFromSingleKeyModel(boolean)
を介して JSON のみとしてエンコードされた抽出することができます
次の特殊なモデルエントリがサポートされています。
com.fasterxml.jackson.annotation.JsonView
キーと、JSON ビューのクラス名を値として持つ JSON ビュー。tools.jackson.databind.ser.FilterProvider
キーとフィルタープロバイダークラス名を値として持つフィルタープロバイダー。
- 導入:
- 7.0
- 作成者:
- Sebastien Deleuze
フィールドのサマリー
フィールドクラス org.springframework.web.servlet.view.AbstractJacksonView から継承されたフィールド
FILTER_PROVIDER_HINT, JSON_VIEW_HINT, updateContentLength
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたフィールド
logger
インターフェース org.springframework.web.servlet.View から継承されたフィールド
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
コンストラクターの概要
コンストラクターコンストラクター説明MapperBuilder.findModules(ClassLoader)
によって検出されたJacksonModule
でカスタマイズされたJsonMapper
で新しいインスタンスを構築し、コンテンツ型をapplication/json
に設定します。JacksonJsonView
(ObjectMapper objectMapper) 提供されたObjectMapper
を使用して新しいインスタンスを構築し、コンテンツ型を "application/json" に設定します。メソッドのサマリー
修飾子と型メソッド説明protected ObjectSE
filterModel
(MapSE<StringSE, ObjectSE> model, HttpServletRequestEE request) 指定されたモデルから不要な属性を除外します。このビューによってレンダリングされるモデルの属性を返します。void
setExtractValueFromSingleKeyModel
(boolean extractValueFromSingleKeyModel) 単一の属性を含むモデルをマップとして直列化するか、モデルから単一の値を抽出して直接直列化するかを設定します。void
setJsonPrefix
(StringSE jsonPrefix) このビューの JSON 出力に使用するカスタムプレフィックスを指定します。void
setModelKey
(StringSE modelKey) このビューによってレンダリングされるモデルの属性を設定します。void
setModelKeys
(@Nullable SetSE<StringSE> modelKeys) このビューによってレンダリングされるモデルの属性を設定します。void
setPrefixJson
(boolean prefixJson) このビューによる JSON 出力に接頭辞")]}', "
を付ける必要があるかどうかを示します。protected void
writePrefix
(tools.jackson.core.JsonGenerator generator, ObjectSE object) メインコンテンツの前にプレフィックスを書きます。クラス org.springframework.web.servlet.view.AbstractJacksonView から継承されたメソッド
getEncoding, prepareResponse, renderMergedOutputModel, setDisableCaching, setEncoding, setUpdateContentLength, writeContent, writeSuffix
クラス org.springframework.web.servlet.view.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
クラス org.springframework.web.context.support.WebApplicationObjectSupport から継承されたメソッド
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
クラス org.springframework.context.support.ApplicationObjectSupport から継承されたメソッド
getApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
フィールドの詳細
DEFAULT_CONTENT_TYPE
デフォルトのコンテンツ型: "application/json".AbstractView.setContentType(String)
を通じてオーバーライド可能です。- 関連事項:
コンストラクターの詳細
JacksonJsonView
public JacksonJsonView()MapperBuilder.findModules(ClassLoader)
によって検出されたJacksonModule
でカスタマイズされたJsonMapper
で新しいインスタンスを構築し、コンテンツ型をapplication/json
に設定します。JacksonJsonView
提供されたObjectMapper
を使用して新しいインスタンスを構築し、コンテンツ型を "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
指定されたモデルから不要な属性を除外します。戻り値は、別の
Map
SE または単一値オブジェクトのいずれかになります。デフォルトの実装では、
BindingResult
インスタンスと、modelKeys
プロパティに含まれていないエントリが削除されます。- 次で指定:
- クラス
AbstractJacksonView
のfilterModel
- パラメーター:
model
-AbstractJacksonView.renderMergedOutputModel(java.util.Map<java.lang.String, java.lang.Object>, jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
に渡されるモデルrequest
- 現在の HTTP リクエスト- 戻り値:
- レンダリングされる値
writePrefix
protected void writePrefix(tools.jackson.core.JsonGenerator generator, ObjectSE object) throws IOExceptionSE クラスからコピーされた説明:AbstractJacksonView
メインコンテンツの前にプレフィックスを書きます。- オーバーライド:
- クラス
AbstractJacksonView
のwritePrefix
- パラメーター:
generator
- コンテンツを書くために使用するジェネレーターobject
- 出力メッセージに書き込むオブジェクト- 例外:
IOExceptionSE