public class KotlinSerializationJsonHttpMessageConverter extends AbstractGenericHttpMessageConverter<Object>
HttpMessageConverter
that can read and write JSON using
kotlinx.serialization.
This converter can be used to bind @Serializable
Kotlin classes,
open polymorphic serialization
is not supported.
It supports application/json
and application/*+json
with
various character sets, UTF-8
being the default.
logger
Constructor and Description |
---|
KotlinSerializationJsonHttpMessageConverter()
Construct a new
KotlinSerializationJsonHttpMessageConverter with the default configuration. |
KotlinSerializationJsonHttpMessageConverter(kotlinx.serialization.json.Json json)
Construct a new
KotlinSerializationJsonHttpMessageConverter with a custom configuration. |
Modifier and Type | Method and Description |
---|---|
boolean |
canRead(Type type,
Class<?> contextClass,
MediaType mediaType)
Indicates whether the given type can be read by this converter.
|
boolean |
canWrite(Type type,
Class<?> clazz,
MediaType mediaType)
Indicates whether the given class can be written by this converter.
|
Object |
read(Type type,
Class<?> contextClass,
HttpInputMessage inputMessage)
Read an object of the given type form the given input message, and returns it.
|
protected Object |
readInternal(Class<?> clazz,
HttpInputMessage inputMessage)
Abstract template method that reads the actual object.
|
protected boolean |
supports(Class<?> clazz)
Indicates whether the given class is supported by this converter.
|
protected void |
writeInternal(Object object,
Type type,
HttpOutputMessage outputMessage)
Abstract template method that writes the actual body.
|
write, writeInternal
addDefaultHeaders, canRead, canRead, canWrite, canWrite, getContentLength, getDefaultCharset, getDefaultContentType, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, write
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
canRead, canWrite, getSupportedMediaTypes, getSupportedMediaTypes, read, write
public KotlinSerializationJsonHttpMessageConverter()
KotlinSerializationJsonHttpMessageConverter
with the default configuration.public KotlinSerializationJsonHttpMessageConverter(kotlinx.serialization.json.Json json)
KotlinSerializationJsonHttpMessageConverter
with a custom configuration.protected boolean supports(Class<?> clazz)
AbstractHttpMessageConverter
supports
in class AbstractGenericHttpMessageConverter<Object>
clazz
- the class to test for supporttrue
if supported; false
otherwisepublic boolean canRead(Type type, @Nullable Class<?> contextClass, @Nullable MediaType mediaType)
GenericHttpMessageConverter
HttpMessageConverter.canRead(Class, MediaType)
with additional ones
related to the generic type.canRead
in interface GenericHttpMessageConverter<Object>
canRead
in class AbstractGenericHttpMessageConverter<Object>
type
- the (potentially generic) type to test for readabilitycontextClass
- 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 null
if not specified.
Typically the value of a Content-Type
header.true
if readable; false
otherwisepublic boolean canWrite(@Nullable Type type, Class<?> clazz, @Nullable MediaType mediaType)
GenericHttpMessageConverter
This method should perform the same checks than
HttpMessageConverter.canWrite(Class, MediaType)
with additional ones
related to the generic type.
canWrite
in interface GenericHttpMessageConverter<Object>
canWrite
in class AbstractGenericHttpMessageConverter<Object>
type
- the (potentially generic) type to test for writability
(can be null
if not specified)clazz
- the source object class to test for writabilitymediaType
- the media type to write (can be null
if not specified);
typically the value of an Accept
header.true
if writable; false
otherwisepublic final Object read(Type type, @Nullable Class<?> contextClass, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException
GenericHttpMessageConverter
type
- the (potentially generic) type of object to return. This type must have
previously been passed to the canRead
method 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 fromIOException
- in case of I/O errorsHttpMessageNotReadableException
- in case of conversion errorsprotected final Object readInternal(Class<?> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException
AbstractHttpMessageConverter
AbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage)
.readInternal
in class AbstractHttpMessageConverter<Object>
clazz
- the type of object to returninputMessage
- the HTTP input message to read fromIOException
- in case of I/O errorsHttpMessageNotReadableException
- in case of conversion errorsprotected final void writeInternal(Object object, @Nullable Type type, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException
AbstractGenericHttpMessageConverter
AbstractGenericHttpMessageConverter.write(T, java.lang.reflect.Type, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)
.writeInternal
in class AbstractGenericHttpMessageConverter<Object>
object
- the object to write to the output messagetype
- the type of object to write (may be null
)outputMessage
- the HTTP output message to write toIOException
- in case of I/O errorsHttpMessageNotWritableException
- in case of conversion errors