bartvh
11/30/2018, 2:08 PM@Serializer(forClass = Long::class)
object LongStrSerializer : KSerializer<Long> {
override fun deserialize(input: Decoder): Long =
input.decodeString().toLong()
override fun serialize(output: Encoder, obj: Long) =
output.encodeString(obj.toString())
}
@kotlinx.serialization.Serializable
data class PlayerSummary(
@kotlinx.serialization.Serializable(with = LongStrSerializer::class)
val id: Long,
val displayName: String
)
However this still results in:
{
"displayName": "Jessie James",
"id": 1337000000
}
What am I doing wrong?public void write$Self(@NotNull CompositeEncoder output, @NotNull SerialDescriptor serialDesc) {
Intrinsics.checkParameterIsNotNull(output, "output");
Intrinsics.checkParameterIsNotNull(serialDesc, "serialDesc");
output.encodeLongElement(serialDesc, 0, this.id);
output.encodeStringElement(serialDesc, 1, this.displayName);
}
which is consistent with this resultsandwwraith
11/30/2018, 3:48 PM