I want to serializable following class using kotlinx-serializer.
But since it contains Map with custom types - HttpUrl
& List<Cookie>
,it gives an error
- Serializer has not been found for type 'HttpUrl'
- Serializer has not been found for type 'Cookie
When Looked into kotlinx serialization documentation it looks like I will need to create a custom KSerializer for the above map type. so I can add it like below.
@Serializable(with = CookieSerializer::class)
val cookies: Map<HttpUrl, List<Cookie>> = emptyMap()
I am looking into some inputs on how I can create a custom CookieSerializer, I tried using the following approach, just to see if compile time error is resolved.
@Serializer(forClass = Map::class)
object CookieSerializer : KSerializer<Map<HttpUrl, List<Cookie>>> {
override val descriptor: SerialDescriptor =
PrimitiveSerialDescriptor("Cookie", PrimitiveKind.STRING)
override fun serialize(encoder: Encoder, value: Map<HttpUrl, List<Cookie>>) {
}
override fun deserialize(decoder: Decoder): Map<HttpUrl, List<Cookie>> {
return emptyMap()
}
}
But I still receive an error.