Class AbstractJackson2HttpMessageConverter
- All Implemented Interfaces:
- GenericHttpMessageConverter<Object>, HttpMessageConverter<Object>
- Direct Known Subclasses:
- MappingJackson2CborHttpMessageConverter, MappingJackson2HttpMessageConverter, MappingJackson2SmileHttpMessageConverter, MappingJackson2XmlHttpMessageConverter, MappingJackson2YamlHttpMessageConverter
HttpMessageConverter implementations.- Since:
- 4.1
- Author:
- Arjen Poutsma, Keith Donald, Rossen Stoyanchev, Juergen Hoeller, Sebastien Deleuze, Sam Brannen
- See Also:
- 
Field SummaryFieldsModifier and TypeFieldDescriptionprotected com.fasterxml.jackson.databind.ObjectMapperDeprecated, for removal: This API element is subject to removal in a future version.Fields inherited from class AbstractHttpMessageConverterlogger
- 
Constructor SummaryConstructorsModifierConstructorDescriptionprotectedAbstractJackson2HttpMessageConverter(com.fasterxml.jackson.databind.ObjectMapper objectMapper) Deprecated, for removal: This API element is subject to removal in a future version.protectedAbstractJackson2HttpMessageConverter(com.fasterxml.jackson.databind.ObjectMapper objectMapper, MediaType supportedMediaType) Deprecated, for removal: This API element is subject to removal in a future version.protectedAbstractJackson2HttpMessageConverter(com.fasterxml.jackson.databind.ObjectMapper objectMapper, MediaType... supportedMediaTypes) Deprecated, for removal: This API element is subject to removal in a future version.
- 
Method SummaryModifier and TypeMethodDescriptionbooleanDeprecated, for removal: This API element is subject to removal in a future version.This implementation checks if the given class is supported, and if the supported media types include the given media type.booleanDeprecated, for removal: This API element is subject to removal in a future version.Indicates whether the given type can be read by this converter.booleanDeprecated, for removal: This API element is subject to removal in a future version.protected com.fasterxml.jackson.databind.ObjectReadercustomizeReader(com.fasterxml.jackson.databind.ObjectReader reader, com.fasterxml.jackson.databind.JavaType javaType) Deprecated, for removal: This API element is subject to removal in a future version.Subclasses can use this method to customizeObjectReaderused for reading values.protected com.fasterxml.jackson.databind.ObjectWritercustomizeWriter(com.fasterxml.jackson.databind.ObjectWriter writer, @Nullable com.fasterxml.jackson.databind.JavaType javaType, @Nullable MediaType contentType) Deprecated, for removal: This API element is subject to removal in a future version.Subclasses can use this method to customizeObjectWriterused for writing values.protected CharsetgetCharset(@Nullable MediaType contentType) Deprecated, for removal: This API element is subject to removal in a future version.Determine the charset to use for JSON input.getContentLength(Object object, @Nullable MediaType contentType) Deprecated, for removal: This API element is subject to removal in a future version.Returns the content length for the given type.getDefaultContentType(Object object) Deprecated, for removal: This API element is subject to removal in a future version.Returns the default content type for the given type.protected com.fasterxml.jackson.databind.JavaTypegetJavaType(Type type, @Nullable Class<?> contextClass) Deprecated, for removal: This API element is subject to removal in a future version.Return the JacksonJavaTypefor the specified type and context class.protected com.fasterxml.jackson.core.JsonEncodinggetJsonEncoding(@Nullable MediaType contentType) Deprecated, for removal: This API element is subject to removal in a future version.Determine the JSON encoding to use for the given content type.Deprecated, for removal: This API element is subject to removal in a future version.Return the supported media type(s) forProblemDetail.com.fasterxml.jackson.databind.ObjectMapperDeprecated, for removal: This API element is subject to removal in a future version.Return the mainObjectMapperin use.getObjectMappersForType(Class<?> clazz) Deprecated, for removal: This API element is subject to removal in a future version.Return ObjectMapper registrations for the given class, if any.getSupportedMediaTypes(Class<?> clazz) Deprecated, for removal: This API element is subject to removal in a future version.Return the list of media types supported by this converter for the given class.protected voidlogWarningIfNecessary(Type type, @Nullable Throwable cause) Deprecated, for removal: This API element is subject to removal in a future version.Determine whether to log the given exception coming from aObjectMapper.canDeserialize(JavaType)/ObjectMapper.canSerialize(Class)check.read(Type type, @Nullable Class<?> contextClass, HttpInputMessage inputMessage) Deprecated, for removal: This API element is subject to removal in a future version.Read an object of the given type from the given input message, and returns it.protected ObjectreadInternal(Class<?> clazz, HttpInputMessage inputMessage) Deprecated, for removal: This API element is subject to removal in a future version.Abstract template method that reads the actual object.voidregisterObjectMappersForType(Class<?> clazz, Consumer<Map<MediaType, com.fasterxml.jackson.databind.ObjectMapper>> registrar) Deprecated, for removal: This API element is subject to removal in a future version.Configure theObjectMapperinstances to use for the givenClass.voidsetObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper) Deprecated, for removal: This API element is subject to removal in a future version.Configure the mainObjectMapperto use for Object conversion.voidsetPrettyPrint(boolean prettyPrint) Deprecated, for removal: This API element is subject to removal in a future version.Whether to use theDefaultPrettyPrinterwhen writing JSON.voidsetSupportedMediaTypes(List<MediaType> supportedMediaTypes) Deprecated, for removal: This API element is subject to removal in a future version.Set the list ofMediaTypeobjects supported by this converter.protected booleanDeprecated, for removal: This API element is subject to removal in a future version.Indicates whether this message converter can write the given object multiple times.protected voidwriteInternal(Object object, @Nullable Type type, HttpOutputMessage outputMessage) Deprecated, for removal: This API element is subject to removal in a future version.Abstract template method that writes the actual body.protected voidwritePrefix(com.fasterxml.jackson.core.JsonGenerator generator, Object object) Deprecated, for removal: This API element is subject to removal in a future version.Write a prefix before the main content.protected voidwriteSuffix(com.fasterxml.jackson.core.JsonGenerator generator, Object object) Deprecated, for removal: This API element is subject to removal in a future version.Write a suffix after the main content.Methods inherited from class AbstractGenericHttpMessageConvertercanWrite, supports, write, writeInternalMethods inherited from class AbstractHttpMessageConverteraddDefaultHeaders, canRead, canWrite, getDefaultCharset, getSupportedMediaTypes, read, setDefaultCharset, writeMethods inherited from class Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface HttpMessageConvertergetSupportedMediaTypes, read, write
- 
Field Details- 
defaultObjectMapperprotected com.fasterxml.jackson.databind.ObjectMapper defaultObjectMapperDeprecated, for removal: This API element is subject to removal in a future version.
 
- 
- 
Constructor Details- 
AbstractJackson2HttpMessageConverterprotected AbstractJackson2HttpMessageConverter(com.fasterxml.jackson.databind.ObjectMapper objectMapper) Deprecated, for removal: This API element is subject to removal in a future version.
- 
AbstractJackson2HttpMessageConverterprotected AbstractJackson2HttpMessageConverter(com.fasterxml.jackson.databind.ObjectMapper objectMapper, MediaType supportedMediaType) Deprecated, for removal: This API element is subject to removal in a future version.
- 
AbstractJackson2HttpMessageConverterprotected AbstractJackson2HttpMessageConverter(com.fasterxml.jackson.databind.ObjectMapper objectMapper, MediaType... supportedMediaTypes) Deprecated, for removal: This API element is subject to removal in a future version.
 
- 
- 
Method Details- 
setSupportedMediaTypesDeprecated, for removal: This API element is subject to removal in a future version.Description copied from class:AbstractHttpMessageConverterSet the list ofMediaTypeobjects supported by this converter.- Overrides:
- setSupportedMediaTypesin class- AbstractHttpMessageConverter<Object>
 
- 
setObjectMapperpublic void setObjectMapper(com.fasterxml.jackson.databind.ObjectMapper objectMapper) Deprecated, for removal: This API element is subject to removal in a future version.Configure the mainObjectMapperto use for Object conversion. If not set, a defaultObjectMapperinstance is created.Setting a custom-configured ObjectMapperis one way to take further control of the JSON serialization process. For example, an extendedSerializerFactorycan be configured that provides custom serializers for specific types. Another option for refining the serialization process is to use Jackson's provided annotations on the types to be serialized, in which case a custom-configured ObjectMapper is unnecessary.- See Also:
 
- 
getObjectMapperpublic com.fasterxml.jackson.databind.ObjectMapper getObjectMapper()Deprecated, for removal: This API element is subject to removal in a future version.Return the mainObjectMapperin use.
- 
registerObjectMappersForTypepublic void registerObjectMappersForType(Class<?> clazz, Consumer<Map<MediaType, com.fasterxml.jackson.databind.ObjectMapper>> registrar) Deprecated, for removal: This API element is subject to removal in a future version.Configure theObjectMapperinstances to use for the givenClass. This is useful when you want to deviate from thedefaultObjectMapper or have theObjectMappervary byMediaType.Note: Use of this method effectively turns off use of the default ObjectMapperandsupportedMediaTypesfor the given class. Therefore it is important for the mappings configured here toincludeevery MediaType that must be supported for the given class.- Parameters:
- clazz- the type of Object to register ObjectMapper instances for
- registrar- a consumer to populate or otherwise update the MediaType-to-ObjectMapper associations for the given Class
- Since:
- 5.3.4
 
- 
getObjectMappersForTypepublic Map<MediaType, com.fasterxml.jackson.databind.ObjectMapper> getObjectMappersForType(Class<?> clazz) Deprecated, for removal: This API element is subject to removal in a future version.Return ObjectMapper registrations for the given class, if any.- Parameters:
- clazz- the class to look up for registrations for
- Returns:
- a map with registered MediaType-to-ObjectMapper registrations, or empty if in case of no registrations for the given class.
- Since:
- 5.3.4
 
- 
getSupportedMediaTypesDeprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:HttpMessageConverterReturn the list of media types supported by this converter for the given class. The list may differ fromHttpMessageConverter.getSupportedMediaTypes()if the converter does not support the given Class or if it supports it only for a subset of media types.- Parameters:
- clazz- the type of class to check
- Returns:
- the list of media types supported for the given class
 
- 
getMediaTypesForProblemDetailDeprecated, for removal: This API element is subject to removal in a future version.Return the supported media type(s) forProblemDetail. By default, an empty list, unless overridden in subclasses.- Since:
- 6.0.5
 
- 
setPrettyPrintpublic void setPrettyPrint(boolean prettyPrint) Deprecated, for removal: This API element is subject to removal in a future version.Whether to use theDefaultPrettyPrinterwhen writing JSON. This is a shortcut for setting up anObjectMapperas follows:ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.INDENT_OUTPUT, true); converter.setObjectMapper(mapper); 
- 
canReadDeprecated, for removal: This API element is subject to removal in a future version.Description copied from class:AbstractHttpMessageConverterThis implementation checks if the given class is supported, and if the supported media types include the given media type.- Specified by:
- canReadin interface- HttpMessageConverter<Object>
- Overrides:
- canReadin class- AbstractHttpMessageConverter<Object>
- Parameters:
- clazz- the class to test for readability
- mediaType- the media type to read (can be- nullif not specified); typically the value of a- Content-Typeheader.
- Returns:
- trueif readable;- falseotherwise
 
- 
canReadDeprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:GenericHttpMessageConverterIndicates whether the given type can be read by this converter. This method should perform the same checks asHttpMessageConverter.canRead(Class, MediaType)with additional ones related to the generic type.- Specified by:
- canReadin interface- GenericHttpMessageConverter<Object>
- Overrides:
- canReadin class- AbstractGenericHttpMessageConverter<Object>
- Parameters:
- type- the (potentially generic) type to test for readability
- contextClass- a context class for the target type, for example a class in which the target type appears in a method signature (can be- null)
- mediaType- the media type to read, can be- nullif not specified. Typically, the value of a- Content-Typeheader.
- Returns:
- trueif readable;- falseotherwise
 
- 
canWriteDeprecated, for removal: This API element is subject to removal in a future version.Description copied from class:AbstractHttpMessageConverterThis implementation checks if the given class is supported, and if the supported media types include the given media type.- Specified by:
- canWritein interface- HttpMessageConverter<Object>
- Overrides:
- canWritein class- AbstractHttpMessageConverter<Object>
- Parameters:
- clazz- the class to test for writability
- mediaType- the media type to write (can be- nullif not specified); typically the value of an- Acceptheader.
- Returns:
- trueif writable;- falseotherwise
 
- 
logWarningIfNecessaryDeprecated, for removal: This API element is subject to removal in a future version.Determine whether to log the given exception coming from aObjectMapper.canDeserialize(JavaType)/ObjectMapper.canSerialize(Class)check.- Parameters:
- type- the class that Jackson tested for (de-)serializability
- cause- the Jackson-thrown exception to evaluate (typically a- JsonMappingException)
- Since:
- 4.3
 
- 
readpublic Object read(Type type, @Nullable Class<?> contextClass, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException Deprecated, for removal: This API element is subject to removal in a future version.Description copied from interface:GenericHttpMessageConverterRead an object of the given type from the given input message, and returns it.- Parameters:
- type- the (potentially generic) type of object to return. This type must have previously been passed to the- canReadmethod of this interface, which must have returned- true.
- contextClass- a context class for the target type, for example a class in which the target type appears in a method signature (can be- null)
- inputMessage- the HTTP input message to read from
- Returns:
- the converted object
- Throws:
- IOException- in case of I/O errors
- HttpMessageNotReadableException- in case of conversion errors
 
- 
readInternalprotected Object readInternal(Class<?> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException Deprecated, for removal: This API element is subject to removal in a future version.Description copied from class:AbstractHttpMessageConverterAbstract template method that reads the actual object. Invoked fromAbstractHttpMessageConverter.read(Class, HttpInputMessage).- Specified by:
- readInternalin class- AbstractHttpMessageConverter<Object>
- Parameters:
- clazz- the type of object to return
- inputMessage- the HTTP input message to read from
- Returns:
- the converted object
- Throws:
- IOException- in case of I/O errors
- HttpMessageNotReadableException- in case of conversion errors
 
- 
customizeReaderprotected com.fasterxml.jackson.databind.ObjectReader customizeReader(com.fasterxml.jackson.databind.ObjectReader reader, com.fasterxml.jackson.databind.JavaType javaType) Deprecated, for removal: This API element is subject to removal in a future version.Subclasses can use this method to customizeObjectReaderused for reading values.- Parameters:
- reader- the reader instance to customize
- javaType- the target type of element values to read to
- Returns:
- the customized ObjectReader
- Since:
- 6.0
 
- 
getCharsetDeprecated, for removal: This API element is subject to removal in a future version.Determine the charset to use for JSON input.By default this is either the charset from the input MediaTypeor otherwise falling back onUTF-8. Can be overridden in subclasses.- Parameters:
- contentType- the content type of the HTTP input message
- Returns:
- the charset to use
- Since:
- 5.1.18
 
- 
writeInternalprotected void writeInternal(Object object, @Nullable Type type, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException Deprecated, for removal: This API element is subject to removal in a future version.Description copied from class:AbstractGenericHttpMessageConverterAbstract template method that writes the actual body. Invoked fromAbstractGenericHttpMessageConverter.write(T, Type, MediaType, HttpOutputMessage).- Specified by:
- writeInternalin class- AbstractGenericHttpMessageConverter<Object>
- Parameters:
- object- the object to write to the output message
- type- the type of object to write (may be- null)
- outputMessage- the HTTP output message to write to
- Throws:
- IOException- in case of I/O errors
- HttpMessageNotWritableException- in case of conversion errors
 
- 
customizeWriterprotected com.fasterxml.jackson.databind.ObjectWriter customizeWriter(com.fasterxml.jackson.databind.ObjectWriter writer, @Nullable com.fasterxml.jackson.databind.JavaType javaType, @Nullable MediaType contentType) Deprecated, for removal: This API element is subject to removal in a future version.Subclasses can use this method to customizeObjectWriterused for writing values.- Parameters:
- writer- the writer instance to customize
- javaType- the type of element values to write
- contentType- the selected media type
- Returns:
- the customized ObjectWriter
- Since:
- 6.0
 
- 
writePrefixprotected void writePrefix(com.fasterxml.jackson.core.JsonGenerator generator, Object object) throws IOException Deprecated, for removal: This API element is subject to removal in a future version.Write a prefix before the main content.- Parameters:
- generator- the generator to use for writing content.
- object- the object to write to the output message.
- Throws:
- IOException
 
- 
writeSuffixprotected void writeSuffix(com.fasterxml.jackson.core.JsonGenerator generator, Object object) throws IOException Deprecated, for removal: This API element is subject to removal in a future version.Write a suffix after the main content.- Parameters:
- generator- the generator to use for writing content.
- object- the object to write to the output message.
- Throws:
- IOException
 
- 
getJavaTypeprotected com.fasterxml.jackson.databind.JavaType getJavaType(Type type, @Nullable Class<?> contextClass) Deprecated, for removal: This API element is subject to removal in a future version.Return the JacksonJavaTypefor the specified type and context class.- Parameters:
- type- the generic type to return the Jackson JavaType for
- contextClass- a context class for the target type, for example a class in which the target type appears in a method signature (can be- null)
- Returns:
- the Jackson JavaType
 
- 
getJsonEncodingDeprecated, for removal: This API element is subject to removal in a future version.Determine the JSON encoding to use for the given content type.- Parameters:
- contentType- the media type as requested by the caller
- Returns:
- the JSON encoding to use (never null)
 
- 
getDefaultContentTypeDeprecated, for removal: This API element is subject to removal in a future version.Description copied from class:AbstractHttpMessageConverterReturns the default content type for the given type. Called whenAbstractHttpMessageConverter.write(T, MediaType, HttpOutputMessage)is invoked without a specified content type parameter.By default, this returns the first element of the supportedMediaTypesproperty, if any. Can be overridden in subclasses.- Overrides:
- getDefaultContentTypein class- AbstractHttpMessageConverter<Object>
- Parameters:
- object- the type to return the content type for
- Returns:
- the content type, or nullif not known
- Throws:
- IOException
 
- 
getContentLengthprotected @Nullable Long getContentLength(Object object, @Nullable MediaType contentType) throws IOException Deprecated, for removal: This API element is subject to removal in a future version.Description copied from class:AbstractHttpMessageConverterReturns the content length for the given type.By default, this returns null, meaning that the content length is unknown. Can be overridden in subclasses.- Overrides:
- getContentLengthin class- AbstractHttpMessageConverter<Object>
- Parameters:
- object- the type to return the content length for
- Returns:
- the content length, or nullif not known
- Throws:
- IOException
 
- 
supportsRepeatableWritesDeprecated, for removal: This API element is subject to removal in a future version.Description copied from class:AbstractHttpMessageConverterIndicates whether this message converter can write the given object multiple times.The default implementation returns false.- Overrides:
- supportsRepeatableWritesin class- AbstractHttpMessageConverter<Object>
- Parameters:
- o- the object t
- Returns:
- trueif- tcan be written repeatedly;- falseotherwise
 
 
- 
AbstractJacksonHttpMessageConverter