Class MappingJackson2JsonView
- All Implemented Interfaces:
- Aware,- BeanNameAware,- ApplicationContextAware,- ServletContextAware,- View
View that renders JSON content by serializing the model for the current request
 using Jackson 2's ObjectMapper.
 By default, the entire contents of the model map (with the exception of framework-specific classes)
 will be encoded as JSON. If the model contains only one key, you can have it extracted encoded as JSON
 alone via  setExtractValueFromSingleKeyModel(boolean).
 
The default constructor uses the default configuration provided by Jackson2ObjectMapperBuilder.
- Since:
- 3.1.2
- Author:
- Jeremy Grelle, Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze
- 
Field SummaryFieldsFields inherited from class org.springframework.web.servlet.view.json.AbstractJackson2ViewupdateContentLengthFields inherited from class org.springframework.context.support.ApplicationObjectSupportloggerFields inherited from interface org.springframework.web.servlet.ViewPATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
- 
Constructor SummaryConstructorsConstructorDescriptionConstruct a newMappingJackson2JsonViewusing default configuration provided byJackson2ObjectMapperBuilderand setting the content type toapplication/json.MappingJackson2JsonView(ObjectMapper objectMapper) Construct a newMappingJackson2JsonViewusing the providedObjectMapperand setting the content type toapplication/json.
- 
Method SummaryModifier and TypeMethodDescriptionprotected ObjectfilterModel(Map<String, Object> model) Filter out undesired attributes from the given model.Return the attributes in the model that should be rendered by this view.voidsetExtractValueFromSingleKeyModel(boolean extractValueFromSingleKeyModel) Set whether to serialize models containing a single attribute as a map or whether to extract the single value from the model and serialize it directly.voidsetJsonPrefix(String jsonPrefix) Specify a custom prefix to use for this view's JSON output.voidsetModelKey(String modelKey) Set the attribute in the model that should be rendered by this view.voidsetModelKeys(Set<String> modelKeys) Set the attributes in the model that should be rendered by this view.voidsetPrefixJson(boolean prefixJson) Indicates whether the JSON output by this view should be prefixed with")]}', ".protected voidwritePrefix(JsonGenerator generator, Object object) Write a prefix before the main content.Methods inherited from class org.springframework.web.servlet.view.json.AbstractJackson2ViewfilterAndWrapModel, getEncoding, getObjectMapper, prepareResponse, renderMergedOutputModel, setDisableCaching, setEncoding, setObjectMapper, setPrettyPrint, setUpdateContentLength, writeContent, writeSuffixMethods inherited from class org.springframework.web.servlet.view.AbstractViewaddStaticAttribute, 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, writeToResponseMethods inherited from class org.springframework.web.context.support.WebApplicationObjectSupportgetServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextMethods inherited from class org.springframework.context.support.ApplicationObjectSupportgetApplicationContext, getMessageSourceAccessor, initApplicationContext, obtainApplicationContext, requiredContextClass, setApplicationContext
- 
Field Details- 
DEFAULT_CONTENT_TYPEDefault content type: "application/json". Overridable throughAbstractView.setContentType(java.lang.String).- See Also:
 
 
- 
- 
Constructor Details- 
MappingJackson2JsonViewpublic MappingJackson2JsonView()Construct a newMappingJackson2JsonViewusing default configuration provided byJackson2ObjectMapperBuilderand setting the content type toapplication/json.
- 
MappingJackson2JsonViewConstruct a newMappingJackson2JsonViewusing the providedObjectMapperand setting the content type toapplication/json.- Since:
- 4.2.1
 
 
- 
- 
Method Details- 
setJsonPrefixSpecify a custom prefix to use for this view's JSON output. Default is none.- See Also:
 
- 
setPrefixJsonpublic void setPrefixJson(boolean prefixJson) Indicates whether the JSON output by this view should be prefixed with")]}', ". Default isfalse.Prefixing the JSON string in this manner is used to help prevent JSON Hijacking. The prefix renders the string syntactically invalid as a script so that it cannot be hijacked. This prefix should be stripped before parsing the string as JSON. - See Also:
 
- 
setModelKeySet the attribute in the model that should be rendered by this view. When set, all other model attributes will be ignored.- Specified by:
- setModelKeyin class- AbstractJackson2View
 
- 
setModelKeysSet the attributes in the model that should be rendered by this view. When set, all other model attributes will be ignored.
- 
getModelKeysReturn the attributes in the model that should be rendered by this view.
- 
setExtractValueFromSingleKeyModelpublic void setExtractValueFromSingleKeyModel(boolean extractValueFromSingleKeyModel) Set whether to serialize models containing a single attribute as a map or whether to extract the single value from the model and serialize it directly.The effect of setting this flag is similar to using MappingJackson2HttpMessageConverterwith an@ResponseBodyrequest-handling method.Default is false.
- 
filterModelFilter out undesired attributes from the given model. The return value can be either anotherMapor a single value object.The default implementation removes BindingResultinstances and entries not included in themodelKeysproperty.- Specified by:
- filterModelin class- AbstractJackson2View
- Parameters:
- model- the model, as passed on to- AbstractJackson2View.renderMergedOutputModel(java.util.Map<java.lang.String, java.lang.Object>, jakarta.servlet.http.HttpServletRequest, jakarta.servlet.http.HttpServletResponse)
- Returns:
- the value to be rendered
 
- 
writePrefixDescription copied from class:AbstractJackson2ViewWrite a prefix before the main content.- Overrides:
- writePrefixin class- AbstractJackson2View
- Parameters:
- generator- the generator to use for writing content.
- object- the object to write to the output message.
- Throws:
- IOException
 
 
-