Eu tenho um código de trabalho serializando / desserializando dados usando o Moshi 1.8.0
A atualização para 1.9.1 agora leva a uma falha ao tentar serializar:
java.lang.IllegalArgumentException: Não é possível serializar o tipo Kotlin com.xxx.Spot. A serialização reflexiva das classes Kotlin sem usar o kotlin-reflect possui um comportamento indefinido e inesperado. Use KotlinJsonAdapter do artefato moshi-kotlin ou use gen do código do artefato moshi-kotlin-codegen.
Aqui está o código do serializador:
val moshi = Moshi.Builder().build()
val dataListType = newParameterizedType(List::class.java, T::class.java)
val adapter: JsonAdapter<List<T>> = moshi.adapter(dataListType)
val json = adapter.toJson(dataList)
e a classe T correspondente é
@IgnoreExtraProperties
data class Spot(
var id: String = "",
var localizedName: String? = null,
var type: String = "",
var location: Location? = null
)
Eu sou totalmente ignorante sobre o que fazer aqui.
Obrigado pela ajuda!