public class KotlinSerializationJsonEncoder extends AbstractEncoder<Object>
Object
stream to a byte stream of JSON objects using
kotlinx.serialization.
This encoder 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 |
---|
KotlinSerializationJsonEncoder() |
KotlinSerializationJsonEncoder(kotlinx.serialization.json.Json json) |
Modifier and Type | Method and Description |
---|---|
boolean |
canEncode(ResolvableType elementType,
MimeType mimeType)
Whether the encoder supports the given source element type and the MIME
type for the output stream.
|
reactor.core.publisher.Flux<DataBuffer> |
encode(org.reactivestreams.Publisher<?> inputStream,
DataBufferFactory bufferFactory,
ResolvableType elementType,
MimeType mimeType,
Map<String,Object> hints)
Encode a stream of Objects of type
T into a DataBuffer
output stream. |
DataBuffer |
encodeValue(Object value,
DataBufferFactory bufferFactory,
ResolvableType valueType,
MimeType mimeType,
Map<String,Object> hints)
Encode an Object of type T to a data buffer.
|
getEncodableMimeTypes, getLogger, setLogger
public KotlinSerializationJsonEncoder()
public KotlinSerializationJsonEncoder(kotlinx.serialization.json.Json json)
public boolean canEncode(ResolvableType elementType, @Nullable MimeType mimeType)
Encoder
public reactor.core.publisher.Flux<DataBuffer> encode(org.reactivestreams.Publisher<?> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String,Object> hints)
Encoder
T
into a DataBuffer
output stream.inputStream
- the input stream of Objects to encode. If the input should be
encoded as a single value rather than as a stream of elements, an instance of
Mono
should be used.bufferFactory
- for creating output stream DataBuffer
'selementType
- the expected type of elements in the input stream;
this type must have been previously passed to the Encoder.canEncode(org.springframework.core.ResolvableType, org.springframework.util.MimeType)
method and it must have returned true
.mimeType
- the MIME type for the output content (optional)hints
- additional information about how to encodepublic DataBuffer encodeValue(Object value, DataBufferFactory bufferFactory, ResolvableType valueType, @Nullable MimeType mimeType, @Nullable Map<String,Object> hints)
Encoder
By default this method raises UnsupportedOperationException
and it is expected that some encoders cannot produce a single buffer or
cannot do so synchronously (e.g. encoding a Resource
).
value
- the value to be encodedbufferFactory
- for creating the output DataBuffer
valueType
- the type for the value being encodedmimeType
- the MIME type for the output content (optional)hints
- additional information about how to encode