KotlinX Serialization Standard Serializers (KS3)

This project aims to provide a set of serializers for common types.

Getting started

⚠️This library is currently being built and not published anywhere yet.

Add the dependency. With gradle:

dependencies {
    implementation("io.ks3:ks3-jdk:<version>")
}

Maven:

<dependency>
  <groupId>io.ks3</groupId>
  <artifactId>ks3-jdk</artifactId>
  <version>$version</version>
</dependency>

Now you can start using the provided serializers. There’s several possible ways to do this.

Using typealias

typealias LocalDateTimeAsString = @Serializable(LocalDateTimeAsStringSerializer::class) LocalDateTime

data class Appointment(
  val datetime: LocalDateTimeAsString
)

For details, see the kotlinx.serialization guide

This method is most useful when you want to use different serial formats for the same type, or when you can’t configure the serializer itself.

Using @Contextual

See the details in kotlinx.serialization guide

@Serializable
class ProgrammingLanguage(
    val name: String,
    @Contextual
    val stableReleaseDate: Date
)

private val module = SerializersModule {
  contextual(DateAsLongSerializer)
}

val format = Json { serializersModule = module }

GitHub

View Github