Class KotlinSerializationJsonHttpMessageConverter
java.lang.Object
org.springframework.http.converter.AbstractHttpMessageConverter<T>
org.springframework.http.converter.AbstractGenericHttpMessageConverter<Object>
org.springframework.http.converter.json.KotlinSerializationJsonHttpMessageConverter
- All Implemented Interfaces:
GenericHttpMessageConverter<Object>
,HttpMessageConverter<Object>
public class KotlinSerializationJsonHttpMessageConverter
extends AbstractGenericHttpMessageConverter<Object>
Implementation of
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.
- Since:
- 5.3
- Author:
- Andreas Ahlenstorf, Sebastien Deleuze, Juergen Hoeller
-
Field Summary
Fields inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
logger
-
Constructor Summary
ConstructorDescriptionConstruct a newKotlinSerializationJsonHttpMessageConverter
with the default configuration.KotlinSerializationJsonHttpMessageConverter
(kotlinx.serialization.json.Json json) Construct a newKotlinSerializationJsonHttpMessageConverter
with a custom configuration. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Indicates whether the given type can be read by this converter.boolean
Indicates whether the given class can be written by this converter.final Object
read
(Type type, Class<?> contextClass, HttpInputMessage inputMessage) Read an object of the given type form the given input message, and returns it.protected final Object
readInternal
(Class<?> clazz, HttpInputMessage inputMessage) Abstract template method that reads the actual object.protected boolean
Indicates whether the given class is supported by this converter.protected final void
writeInternal
(Object object, Type type, HttpOutputMessage outputMessage) Abstract template method that writes the actual body.Methods inherited from class org.springframework.http.converter.AbstractGenericHttpMessageConverter
write, writeInternal
Methods inherited from class org.springframework.http.converter.AbstractHttpMessageConverter
addDefaultHeaders, canRead, canRead, canWrite, canWrite, getContentLength, getDefaultCharset, getDefaultContentType, getSupportedMediaTypes, read, setDefaultCharset, setSupportedMediaTypes, write
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.http.converter.HttpMessageConverter
canRead, canWrite, getSupportedMediaTypes, getSupportedMediaTypes, read, write
-
Constructor Details
-
KotlinSerializationJsonHttpMessageConverter
public KotlinSerializationJsonHttpMessageConverter()Construct a newKotlinSerializationJsonHttpMessageConverter
with the default configuration. -
KotlinSerializationJsonHttpMessageConverter
public KotlinSerializationJsonHttpMessageConverter(kotlinx.serialization.json.Json json) Construct a newKotlinSerializationJsonHttpMessageConverter
with a custom configuration.
-
-
Method Details
-
supports
Description copied from class:AbstractHttpMessageConverter
Indicates whether the given class is supported by this converter.- Overrides:
supports
in classAbstractGenericHttpMessageConverter<Object>
- Parameters:
clazz
- the class to test for support- Returns:
true
if supported;false
otherwise
-
canRead
Description copied from interface:GenericHttpMessageConverter
Indicates whether the given type can be read by this converter. This method should perform the same checks thanHttpMessageConverter.canRead(Class, MediaType)
with additional ones related to the generic type.- Specified by:
canRead
in interfaceGenericHttpMessageConverter<Object>
- Overrides:
canRead
in classAbstractGenericHttpMessageConverter<Object>
- Parameters:
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 benull
)mediaType
- the media type to read, can benull
if not specified. Typically the value of aContent-Type
header.- Returns:
true
if readable;false
otherwise
-
canWrite
Description copied from interface:GenericHttpMessageConverter
Indicates whether the given class can be written by this converter.This method should perform the same checks than
HttpMessageConverter.canWrite(Class, MediaType)
with additional ones related to the generic type.- Specified by:
canWrite
in interfaceGenericHttpMessageConverter<Object>
- Overrides:
canWrite
in classAbstractGenericHttpMessageConverter<Object>
- Parameters:
type
- the (potentially generic) type to test for writability (can benull
if not specified)clazz
- the source object class to test for writabilitymediaType
- the media type to write (can benull
if not specified); typically the value of anAccept
header.- Returns:
true
if writable;false
otherwise
-
read
public final Object read(Type type, @Nullable Class<?> contextClass, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException Description copied from interface:GenericHttpMessageConverter
Read an object of the given type form 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 thecanRead
method of this interface, which must have returnedtrue
.contextClass
- a context class for the target type, for example a class in which the target type appears in a method signature (can benull
)inputMessage
- the HTTP input message to read from- Returns:
- the converted object
- Throws:
IOException
- in case of I/O errorsHttpMessageNotReadableException
- in case of conversion errors
-
readInternal
protected final Object readInternal(Class<?> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException Description copied from class:AbstractHttpMessageConverter
Abstract template method that reads the actual object. Invoked fromAbstractHttpMessageConverter.read(java.lang.Class<? extends T>, org.springframework.http.HttpInputMessage)
.- Specified by:
readInternal
in classAbstractHttpMessageConverter<Object>
- Parameters:
clazz
- the type of object to returninputMessage
- the HTTP input message to read from- Returns:
- the converted object
- Throws:
IOException
- in case of I/O errorsHttpMessageNotReadableException
- in case of conversion errors
-
writeInternal
protected final void writeInternal(Object object, @Nullable Type type, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException Description copied from class:AbstractGenericHttpMessageConverter
Abstract template method that writes the actual body. Invoked fromAbstractGenericHttpMessageConverter.write(T, java.lang.reflect.Type, org.springframework.http.MediaType, org.springframework.http.HttpOutputMessage)
.- Specified by:
writeInternal
in classAbstractGenericHttpMessageConverter<Object>
- Parameters:
object
- the object to write to the output messagetype
- the type of object to write (may benull
)outputMessage
- the HTTP output message to write to- Throws:
IOException
- in case of I/O errorsHttpMessageNotWritableException
- in case of conversion errors
-