Richard Gomez
08/24/2021, 4:04 PM["v1", "v2", "v3"]
) as a data class?
@Serializable
data class VersionResponse(val versions: List<String>)
I've made several attempts with JsonTransformingSerializer
, but no dice! 😔Richard Gomez
08/24/2021, 4:07 PMjava.lang.reflect.InvocationTargetException
at kotlinx.serialization.internal.PlatformKt.invokeSerializerOnCompanion(Platform.kt:106)
at kotlinx.serialization.internal.PlatformKt.constructSerializerForGivenTypeArgs(Platform.kt:41)
at kotlinx.serialization.internal.PlatformKt.compiledSerializerImpl(Platform.kt:23)
at kotlinx.serialization.SerializersKt__SerializersKt.serializerOrNull(Serializers.kt:178)
at kotlinx.serialization.SerializersKt.serializerOrNull(Unknown Source)
at kotlinx.serialization.SerializersKt__SerializersKt.serializerByKTypeImpl$SerializersKt__SerializersKt(Serializers.kt:83)
at kotlinx.serialization.SerializersKt__SerializersKt.serializer(Serializers.kt:59)
at kotlinx.serialization.SerializersKt.serializer(Unknown Source)
Caused by: java.lang.NullPointerException: Parameter specified as non-null is null: method kotlinx.serialization.json.JsonTransformingSerializer.<init>, parameter tSerializer
at kotlinx.serialization.json.JsonTransformingSerializer.<init>(JsonTransformingSerializer.kt)
Richard Gomez
08/24/2021, 4:10 PMRichard Gomez
08/24/2021, 4:21 PM@Serializable
data class VersionResponse(val versions: List<String>)
fun main() {
println(Json.decodeFromString(VersionsResponseSerializer, """["v1","v2"]"""))
}
Any idea why @Serializable(VersionResponseSerializer::class)
breaks it? 🤔 I guess there's some recursion happening... but, in that case, I'm not sure what I should be passing to JsonTransformingSerializer
. Perhaps another custom serializer?Richard Gomez
08/24/2021, 6:33 PMPaul Griffith
08/24/2021, 10:27 PMVersionResponse
class and just want to indicate it's a unique type, is to use a value class
Richard Gomez
08/24/2021, 10:33 PM