AdditionalPropertiesFlatteningSerializer

abstract class AdditionalPropertiesFlatteningSerializer<T>(tSerializer: KSerializer<T>, additionalPropertiesField: String = "additionalProperties") : JsonTransformingSerializer<T> (source)

JSON serializer that handles additional properties in objects.

On serialization: flattens additionalProperties to root level. On deserialization: collects unknown properties into additionalProperties field.

Compatible with JsonNamingStrategy.SnakeCase: field names are matched against both their declared form and their snake_case form, and the additional-properties key is emitted in the form that matches the payload's naming so the inner serializer can read it back.

Parameters

tSerializer

Underlying serializer for type T.

additionalPropertiesField

The name of the field to use for additional properties, defaults to "additionalProperties".

Constructors

Link copied to clipboard
constructor(tSerializer: KSerializer<T>, additionalPropertiesField: String = "additionalProperties")

Properties

Link copied to clipboard
open override val descriptor: SerialDescriptor

Functions

Link copied to clipboard
override fun deserialize(decoder: Decoder): T
Link copied to clipboard
override fun serialize(encoder: Encoder, value: T)