Class KotlinSerializationJsonEncoder
java.lang.Object
org.springframework.http.codec.KotlinSerializationSupport<kotlinx.serialization.json.Json>
org.springframework.http.codec.KotlinSerializationStringEncoder<kotlinx.serialization.json.Json>
org.springframework.http.codec.json.KotlinSerializationJsonEncoder
public class KotlinSerializationJsonEncoder
extends KotlinSerializationStringEncoder<kotlinx.serialization.json.Json>
Encode from an
Object stream to a byte stream of JSON objects using
kotlinx.serialization.
It supports application/json, application/x-ndjson and application/*+json with
various character sets, UTF-8 being the default.
As of Spring Framework 7.0, by default it only encodes types annotated with
@Serializable at type or generics
level.
Alternative constructors with a Predicate<ResolvableType>
parameter can be used to customize this behavior. For example,
new KotlinSerializationJsonEncoder(type -> true) will encode all types
supported by Kotlin Serialization, including unannotated Kotlin enumerations,
numbers, characters, booleans and strings.
- Since:
- 5.3
- Author:
- Sebastien Deleuze, Iain Henderson
- See Also:
-
Field Summary
Fields inherited from class KotlinSerializationStringEncoder
EMPTY_BYTES -
Constructor Summary
ConstructorsConstructorDescriptionConstruct a new encoder usingJson.Defaultinstance which only encodes types annotated with@Serializableat type or generics level.KotlinSerializationJsonEncoder(Predicate<ResolvableType> typePredicate) Construct a new encoder usingJson.Defaultinstance which only encodes types for which the specified predicate returnstrue.KotlinSerializationJsonEncoder(kotlinx.serialization.json.Json json) Construct a new encoder using the providedJsoninstance which only encodes types annotated with@Serializableat type or generics level.KotlinSerializationJsonEncoder(kotlinx.serialization.json.Json json, Predicate<ResolvableType> typePredicate) Construct a new encoder using the providedJsoninstance which only encodes types for which the specified predicate returnstrue. -
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Flux<DataBuffer> encodeNonStream(Publisher<?> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) Methods inherited from class KotlinSerializationStringEncoder
canEncode, encode, encodeStreamingValue, encodeValue, getEncodableMimeTypes, getEncodableMimeTypes, setStreamingMediaTypesMethods inherited from class KotlinSerializationSupport
canSerialize, format, serializer, supportedMimeTypes
-
Constructor Details
-
KotlinSerializationJsonEncoder
public KotlinSerializationJsonEncoder()Construct a new encoder usingJson.Defaultinstance which only encodes types annotated with@Serializableat type or generics level. -
KotlinSerializationJsonEncoder
Construct a new encoder usingJson.Defaultinstance which only encodes types for which the specified predicate returnstrue.- Since:
- 7.0
-
KotlinSerializationJsonEncoder
public KotlinSerializationJsonEncoder(kotlinx.serialization.json.Json json) Construct a new encoder using the providedJsoninstance which only encodes types annotated with@Serializableat type or generics level. -
KotlinSerializationJsonEncoder
public KotlinSerializationJsonEncoder(kotlinx.serialization.json.Json json, Predicate<ResolvableType> typePredicate) Construct a new encoder using the providedJsoninstance which only encodes types for which the specified predicate returnstrue.- Since:
- 7.0
-
-
Method Details
-
encodeNonStream
public reactor.core.publisher.Flux<DataBuffer> encodeNonStream(Publisher<?> inputStream, DataBufferFactory bufferFactory, ResolvableType elementType, @Nullable MimeType mimeType, @Nullable Map<String, Object> hints) - Overrides:
encodeNonStreamin classKotlinSerializationStringEncoder<kotlinx.serialization.json.Json>
-