Moshi 1.8.0を使用してデータをシリアライズ/デシリアライズする作業コードがあります
1.9.1にアップグレードすると、シリアライズしようとするとクラッシュするようになりました。
java.lang.IllegalArgumentException:Kotlinタイプcom.xxx.Spotをシリアル化できません。kotlin-reflectを使用しないKotlinクラスのリフレクトシリアライズには、未定義の予期しない動作があります。moshi-kotlinアーティファクトのKotlinJsonAdapterを使用するか、moshi-kotlin-codegenアーティファクトのコードgenを使用してください。
シリアライザのコードは次のとおりです。
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)
対応するTクラスは
@IgnoreExtraProperties
data class Spot(
var id: String = "",
var localizedName: String? = null,
var type: String = "",
var location: Location? = null
)
ここで何をすればいいのか全く分かりません。
助けてくれてありがとう!
使用している依存関係を表示してください
—
coroutineDispatcher