1 // This file was automatically generated from serializers.md by Knit tool. Do not edit. 2 package example.exampleSerializer16 3 4 import kotlinx.serialization.* 5 import kotlinx.serialization.json.* 6 import kotlinx.serialization.encoding.* 7 import kotlinx.serialization.descriptors.* 8 9 import java.util.Date 10 import java.text.SimpleDateFormat 11 12 object DateAsLongSerializer : KSerializer<Date> { 13 override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("Date", PrimitiveKind.LONG) serializenull14 override fun serialize(encoder: Encoder, value: Date) = encoder.encodeLong(value.time) 15 override fun deserialize(decoder: Decoder): Date = Date(decoder.decodeLong()) 16 } 17 18 @Serializable 19 class ProgrammingLanguage( 20 val name: String, 21 val releaseDates: List<@Serializable(DateAsLongSerializer::class) Date> 22 ) 23 24 fun main() { 25 val df = SimpleDateFormat("yyyy-MM-ddX") 26 val data = ProgrammingLanguage("Kotlin", listOf(df.parse("2023-07-06+00"), df.parse("2023-04-25+00"), df.parse("2022-12-28+00"))) 27 println(Json.encodeToString(data)) 28 } 29