1 // This file was automatically generated from serializers.md by Knit tool. Do not edit. 2 package example.exampleSerializer21 3 4 import kotlinx.serialization.* 5 import kotlinx.serialization.json.* 6 import kotlinx.serialization.encoding.* 7 import kotlinx.serialization.descriptors.* 8 9 import kotlinx.serialization.modules.* 10 import java.util.Date 11 import java.text.SimpleDateFormat 12 13 object DateAsLongSerializer : KSerializer<Date> { 14 override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Date", PrimitiveKind.LONG) serializenull15 override fun serialize(encoder: Encoder, value: Date) = encoder.encodeLong(value.time) 16 override fun deserialize(decoder: Decoder): Date = Date(decoder.decodeLong()) 17 } 18 19 @Serializable 20 class ProgrammingLanguage( 21 val name: String, 22 @Contextual 23 val stableReleaseDate: Date 24 ) 25 26 private val module = SerializersModule { 27 contextual(DateAsLongSerializer) 28 } 29 <lambda>null30val format = Json { serializersModule = module } 31 mainnull32fun main() { 33 val data = ProgrammingLanguage("Kotlin", SimpleDateFormat("yyyy-MM-ddX").parse("2016-02-15+00")) 34 println(format.encodeToString(data)) 35 } 36